Author: tchemit Date: 2011-07-05 12:22:53 +0200 (Tue, 05 Jul 2011) New Revision: 86 Url: http://nuiton.org/repositories/revision/nuiton-web/86 Log: add logs in interceptor and catch errors in proxy to show errors Modified: trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/interceptor/TopiaTransactionInterceptor.java Modified: trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/interceptor/TopiaTransactionInterceptor.java =================================================================== --- trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/interceptor/TopiaTransactionInterceptor.java 2011-07-04 21:36:06 UTC (rev 85) +++ trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/interceptor/TopiaTransactionInterceptor.java 2011-07-05 10:22:53 UTC (rev 86) @@ -27,6 +27,8 @@ import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; import com.opensymphony.xwork2.util.TextParseUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaContextImplementor; @@ -47,6 +49,10 @@ */ public abstract class TopiaTransactionInterceptor extends AbstractInterceptor { + /** Logger. */ + private static final Log log = + LogFactory.getLog(TopiaTransactionInterceptor.class); + private static final long serialVersionUID = 1L; public static final String[] DEFAULT_EXCLUDE_METHODS = { @@ -97,6 +103,9 @@ // action need a transaction transaction = beginTransaction(); + if (log.isDebugEnabled()) { + log.debug("Open transaction " + transaction); + } // creates a proxy on the transaction to push back in action TopiaContext proxy = (TopiaContext) Proxy.newProxyInstance( getClass().getClassLoader(), @@ -118,6 +127,9 @@ if (transaction != null && !transaction.isClosed()) { + if (log.isDebugEnabled()) { + log.debug("Close transaction " + transaction); + } // close the opened transaction transaction.closeContext(); } @@ -155,9 +167,15 @@ } // can invoke the method on the tx - Object result = method.invoke(tx, args); - - return result; + try { + Object result = method.invoke(tx, args); + return result; + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Could not execute method " + method.getName(), eee); + } + throw eee; + } } }