details: https://code.openbravo.com/erp/devel/pi/rev/67bf31e6746a changeset: 28126:67bf31e6746a user: Inigo Sanchez <inigo.sanchez <at> openbravo.com> date: Mon Dec 14 14:11:12 2015 +0100 summary: Fixed issue 26349: Robustness:Improve handling of disabling triggers.
It has been improved the handling of disabling triggers by throwing exceptions in enable() and disable() methods instead of error logs. Now an exception is thrown if there is a problem in enable() and disable() methods. Besides it has been added a change to improve where clear() method is invoked. diffstat: src/org/openbravo/dal/core/TriggerHandler.java | 10 ++++++---- src/org/openbravo/service/system/SystemService.java | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diffs (64 lines): diff -r f8182b504a55 -r 67bf31e6746a src/org/openbravo/dal/core/TriggerHandler.java --- a/src/org/openbravo/dal/core/TriggerHandler.java Thu Dec 10 19:24:07 2015 +0100 +++ b/src/org/openbravo/dal/core/TriggerHandler.java Mon Dec 14 14:11:12 2015 +0100 @@ -11,7 +11,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU - * All portions are Copyright (C) 2008-2012 Openbravo SLU + * All portions are Copyright (C) 2008-2015 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -24,6 +24,7 @@ import java.sql.SQLException; import org.apache.log4j.Logger; +import org.openbravo.base.exception.OBException; import org.openbravo.base.provider.OBProvider; import org.openbravo.base.util.Check; import org.openbravo.dal.service.OBDal; @@ -68,7 +69,7 @@ ps.executeUpdate(); sessionStatus.set(Boolean.TRUE); } catch (Exception e) { - log.error("Couldn't disable triggers: ", e); + throw new OBException("Couldn't disable triggers: ", e); } finally { try { ps.close(); @@ -105,10 +106,11 @@ try { ps = con.prepareStatement("DELETE FROM AD_SESSION_STATUS"); ps.executeUpdate(); - sessionStatus.set(null); } catch (Exception e) { - log.error("Couldn't enable triggers: ", e); + throw new OBException("Couldn't disable triggers: ", e); } finally { + // always clear the threadlocal + clear(); try { ps.close(); } catch (SQLException e) { diff -r f8182b504a55 -r 67bf31e6746a src/org/openbravo/service/system/SystemService.java --- a/src/org/openbravo/service/system/SystemService.java Thu Dec 10 19:24:07 2015 +0100 +++ b/src/org/openbravo/service/system/SystemService.java Mon Dec 14 14:11:12 2015 +0100 @@ -11,7 +11,7 @@ * under the License. * The Original Code is Openbravo ERP. * The Initial Developer of the Original Code is Openbravo SLU - * All portions are Copyright (C) 2009-2014 Openbravo SLU + * All portions are Copyright (C) 2009-2015 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -226,6 +226,8 @@ TriggerHandler.getInstance().enable(); OBDal.getInstance().commitAndClose(); } finally { + // always clear the threadlocal + TriggerHandler.getInstance().clear(); OBContext.restorePreviousMode(); } } ------------------------------------------------------------------------------ _______________________________________________ Openbravo-commits mailing list Openbravo-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbravo-commits