package com.fitbank.bpm.common; import java.io.Serializable; import com.fitbank.common.Helper; import com.fitbank.common.exception.ExceptionHandler; import com.fitbank.common.logger.FitbankLogger; import com.fitbank.dto.management.Detail; public class CommitTransaction implements Serializable { private static final long serialVersionUID = 1L; public Detail execute(Detail pDetail) throws Exception { try { if (pDetail.getResponse().isCommitable()) { Helper.commitTransaction(); } else { FitbankLogger.getLogger().error(pDetail.getResponse().getStackTrace()); Helper.getSession().createSQLQuery("rollback").executeUpdate(); } } catch (Exception e) { FitbankLogger.getLogger().error(e); try { Helper.getSession().createSQLQuery("rollback").executeUpdate(); } catch (Exception e2) { FitbankLogger.getLogger().error(e); } ExceptionHandler eh = new ExceptionHandler(e, pDetail.getLanguage()); pDetail.setResponse(eh.manage()); } finally { Helper.closeSession(); } return pDetail; } }