You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/11/11 14:41:21 UTC

svn commit: r1200880 - in /camel/branches/camel-2.7.x: ./ components/camel-jpa/src/main/java/org/apache/camel/component/jpa/ components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/ components/camel-jpa/src/test/resources/

Author: davsclaus
Date: Fri Nov 11 13:41:20 2011
New Revision: 1200880

URL: http://svn.apache.org/viewvc?rev=1200880&view=rev
Log:
CAMEL-4668: Fixed JPA consumer to rollback if one Exchange failed

Added:
    camel/branches/camel-2.7.x/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaTXRollbackTest.java
      - copied unchanged from r1200867, camel/branches/camel-2.8.x/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaTXRollbackTest.java
Modified:
    camel/branches/camel-2.7.x/   (props changed)
    camel/branches/camel-2.7.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
    camel/branches/camel-2.7.x/components/camel-jpa/src/test/resources/log4j.properties

Propchange: camel/branches/camel-2.7.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Nov 11 13:41:20 2011
@@ -1,2 +1,2 @@
-/camel/branches/camel-2.8.x:1170965,1171400,1174571,1175323,1176329,1176787,1177397,1177946,1177949,1180598,1187226,1189704,1199138,1199732,1199766,1199807
-/camel/trunk:1146608,1146903,1147216,1170956,1171396,1174565,1175321,1176274,1176781-1176782,1177394,1177945,1177948,1180597,1187221,1189693,1199137,1199703,1199739,1199804
+/camel/branches/camel-2.8.x:1170965,1171400,1174571,1175323,1176329,1176787,1177397,1177946,1177949,1180598,1187226,1189704,1199138,1199732,1199766,1199807,1200867
+/camel/trunk:1146608,1146903,1147216,1170956,1171396,1174565,1175321,1176274,1176781-1176782,1177394,1177945,1177948,1180597,1187221,1189693,1199137,1199703,1199739,1199804,1200861

Propchange: camel/branches/camel-2.7.x/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri Nov 11 13:41:20 2011
@@ -1 +1 @@
-/camel/branches/camel-2.8.x:1-1146127,1146608,1146653,1146771,1146903,1147216,1170965-1171083,1171085-1171400,1174571,1175323,1176329,1176787,1177397,1177946,1177949,1180598,1187226,1189704,1199138,1199732,1199766,1199807
+/camel/branches/camel-2.8.x:1-1146127,1146608,1146653,1146771,1146903,1147216,1170965-1171083,1171085-1171400,1174571,1175323,1176329,1176787,1177397,1177946,1177949,1180598,1187226,1189704,1199138,1199732,1199766,1199807,1200867

Modified: camel/branches/camel-2.7.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.7.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java?rev=1200880&r1=1200879&r2=1200880&view=diff
==============================================================================
--- camel/branches/camel-2.7.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java (original)
+++ camel/branches/camel-2.7.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java Fri Nov 11 13:41:20 2011
@@ -83,7 +83,11 @@ public class JpaConsumer extends Schedul
 
                 Query query = getQueryFactory().createQuery(entityManager);
                 configureParameters(query);
+                LOG.trace("Created query {}", query);
+
                 List<Object> results = CastUtils.cast(query.getResultList());
+                LOG.trace("Got result list from query {}", results);
+
                 for (Object result : results) {
                     DataHolder holder = new DataHolder();
                     holder.manager = entityManager;
@@ -96,9 +100,14 @@ public class JpaConsumer extends Schedul
                 try {
                     messagePolled = processBatch(CastUtils.cast(answer));
                 } catch (Exception e) {
-                    throw new PersistenceException(e);
+                    if (e instanceof PersistenceException) {
+                        throw (PersistenceException) e;
+                    } else {
+                        throw new PersistenceException(e);
+                    }
                 }
 
+                LOG.debug("Flushing EntityManager");
                 entityManager.flush();
                 return messagePolled;
             }
@@ -140,11 +149,12 @@ public class JpaConsumer extends Schedul
                 if (LOG.isDebugEnabled()) {
                     LOG.debug("Processing exchange: " + exchange);
                 }
-                try {
-                    getProcessor().process(exchange);
-                } catch (Exception e) {
-                    throw new PersistenceException(e);
+                getProcessor().process(exchange);
+                if (exchange.getException() != null) {
+                    // if we failed then throw exception
+                    throw exchange.getException();
                 }
+
                 getDeleteHandler().deleteObject(entityManager, result);
             }
         }

Modified: camel/branches/camel-2.7.x/components/camel-jpa/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.7.x/components/camel-jpa/src/test/resources/log4j.properties?rev=1200880&r1=1200879&r2=1200880&view=diff
==============================================================================
--- camel/branches/camel-2.7.x/components/camel-jpa/src/test/resources/log4j.properties (original)
+++ camel/branches/camel-2.7.x/components/camel-jpa/src/test/resources/log4j.properties Fri Nov 11 13:41:20 2011
@@ -21,8 +21,9 @@
 log4j.rootLogger=INFO, file
 
 #log4j.logger.org.apache.camel=DEBUG
-log4j.logger.org.springframework=WARN
+#log4j.logger.org.springframework=WARN
 #log4j.logger.org.apache.activemq=DEBUG
+#log4j.logger.org.apache.camel.component.jpa=DEBUG
 
 # CONSOLE appender not used by default
 log4j.appender.out=org.apache.log4j.ConsoleAppender