Java tutorial
/** * PureInfo Quake * @(#)BuildAction.java 1.0 Jun 28, 2006 * * Copyright(c) 2004-2005, PureInfo Information Technology Corp. Ltd. * All rights reserved, see the license file. * * www.pureinfo.com.cn */ package com.pureinfo.srm.srm2rpms.action; import java.util.Date; import org.apache.commons.lang.StringUtils; import org.apache.struts.action.ActionForward; import com.pureinfo.ark.interaction.ActionBase; import com.pureinfo.force.exception.PureException; import com.pureinfo.srm.srm2rpms.BuildInfo; import com.pureinfo.srm.srm2rpms.SRM2RPMSImporter; public class BuildAction extends ActionBase { public ActionForward executeAction() throws PureException { //why@2006-12-27 final String sItemFlags = StringUtils.join(request.getParameterValues("data"), ','); logger.debug("data=" + sItemFlags); if (!BuildInfo.isRunning()) { BuildInfo.setRunning(true); new Thread(new Runnable() { public void run() { try { SRM2RPMSImporter.run(sItemFlags); BuildInfo.setSuccess(true); BuildInfo.setUpdateTime(new Date()); BuildInfo.setUpdated(true); BuildInfo.setRunning(false); } catch (Exception e) { try { BuildInfo.setSuccess(false); BuildInfo.setUpdateTime(new Date()); logger.error("build error", e); BuildInfo.setRunning(false); } catch (Exception ex) { logger.error("print error", ex); } } } }).start(); } request.setAttribute("data", sItemFlags); return mapping.findForward("success"); } }