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:13:49 UTC
svn commit: r1200867 - in /camel/branches/camel-2.8.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:13:49 2011
New Revision: 1200867
URL: http://svn.apache.org/viewvc?rev=1200867&view=rev
Log:
CAMEL-4668: Fixed JPA consumer to rollback if one Exchange failed
Added:
camel/branches/camel-2.8.x/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaTXRollbackTest.java
- copied unchanged from r1200861, camel/trunk/components/camel-jpa/src/test/java/org/apache/camel/processor/jpa/JpaTXRollbackTest.java
Modified:
camel/branches/camel-2.8.x/ (props changed)
camel/branches/camel-2.8.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
camel/branches/camel-2.8.x/components/camel-jpa/src/test/resources/log4j.properties
Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Nov 11 13:13:49 2011
@@ -1 +1 @@
-/camel/trunk:1186106,1186625,1186772,1187221,1187485,1187882,1187893,1188070-1188085,1188642,1188674,1188879,1188881,1189139,1189600,1189681,1189693,1189737,1190212-1190213,1190246,1190303,1195317,1195616,1196210,1197450,1197933,1197948,1198199,1198338,1198340,1199123,1199137,1199654,1199683,1199703,1199739,1199804,1200214,1200771,1200819
+/camel/trunk:1186106,1186625,1186772,1187221,1187485,1187882,1187893,1188070-1188085,1188642,1188674,1188879,1188881,1189139,1189600,1189681,1189693,1189737,1190212-1190213,1190246,1190303,1195317,1195616,1196210,1197450,1197933,1197948,1198199,1198338,1198340,1199123,1199137,1199654,1199683,1199703,1199739,1199804,1200214,1200771,1200819,1200861
Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-2.8.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java?rev=1200867&r1=1200866&r2=1200867&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java (original)
+++ camel/branches/camel-2.8.x/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java Fri Nov 11 13:13:49 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;
}
@@ -138,11 +147,12 @@ public class JpaConsumer extends Schedul
if (lockEntity(result, entityManager)) {
// process the current exchange
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.8.x/components/camel-jpa/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-jpa/src/test/resources/log4j.properties?rev=1200867&r1=1200866&r2=1200867&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-jpa/src/test/resources/log4j.properties (original)
+++ camel/branches/camel-2.8.x/components/camel-jpa/src/test/resources/log4j.properties Fri Nov 11 13:13:49 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