[jbpm-commits] JBoss JBPM SVN: r5801 - jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Oct 26 11:53:06 EDT 2009


Author: tom.baeyens at jboss.com
Date: 2009-10-26 11:53:05 -0400 (Mon, 26 Oct 2009)
New Revision: 5801

Modified:
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query/AbstractQuery.java
Log:
elaborated exception reporting

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query/AbstractQuery.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query/AbstractQuery.java	2009-10-26 14:23:29 UTC (rev 5800)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/query/AbstractQuery.java	2009-10-26 15:53:05 UTC (rev 5801)
@@ -22,13 +22,16 @@
 package org.jbpm.pvm.internal.query;
 
 import java.io.ObjectStreamException;
+import java.sql.SQLException;
 import java.util.List;
 
+import org.hibernate.HibernateException;
 import org.hibernate.Query;
 import org.hibernate.Session;
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.cmd.Command;
 import org.jbpm.api.cmd.Environment;
+import org.jbpm.internal.log.Log;
 import org.jbpm.pvm.internal.cmd.CommandService;
 import org.jbpm.pvm.internal.env.EnvironmentImpl;
 
@@ -37,6 +40,8 @@
  * @author Tom Baeyens
  */
 public abstract class AbstractQuery implements Command<Object> {
+  
+  private static Log log = Log.getLog(AbstractQuery.class.getName());
 
   private static final long serialVersionUID = 1L;
   
@@ -83,10 +88,25 @@
   
   public Object execute(Session session) {
     String hql = hql();
-    Query query = session.createQuery(hql);
-    applyParameters(query);
-    applyPage(query);
-    return query.list();
+    try {
+      Query query = session.createQuery(hql);
+      applyParameters(query);
+      applyPage(query);
+      return query.list();
+    } catch (HibernateException e) {
+      Throwable t = e;
+      while (t!=null) {
+        if (t instanceof SQLException) {
+          SQLException sqlException = (SQLException) t;
+          SQLException nextException = sqlException.getNextException();
+          if (nextException!=null) {
+            log.error("cause of "+nextException+": ", e);
+          }
+        }
+        t = t.getCause();
+      }
+      throw e;
+    }
   }
 
   protected void appendWhereClause(String whereClause, StringBuilder hql) {



More information about the jbpm-commits mailing list