[ARIES-1415] Adding message to wrapped exceptions, do not wrap Error instances
git-svn-id: https://svn.apache.org/repos/asf/aries/trunk/jpa@1704662 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/AbstractJpaTemplate.java b/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/AbstractJpaTemplate.java
index 075ae42..d0b2289 100644
--- a/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/AbstractJpaTemplate.java
+++ b/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/AbstractJpaTemplate.java
@@ -48,10 +48,10 @@
}
- protected RuntimeException wrapThrowable(Throwable ex) {
+ protected RuntimeException wrapThrowable(Throwable ex, String message) {
if (ex instanceof RuntimeException) {
return (RuntimeException) ex;
}
- return new RuntimeException(ex);
+ return new RuntimeException(message, ex);
}
}
diff --git a/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/ResourceLocalJpaTemplate.java b/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/ResourceLocalJpaTemplate.java
index 50ea461..2f68ee3 100644
--- a/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/ResourceLocalJpaTemplate.java
+++ b/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/ResourceLocalJpaTemplate.java
@@ -62,7 +62,7 @@
if (weControlTx) {
safeRollback(em, e);
}
- throw wrapThrowable(e);
+ throw wrapThrowable(e, "Exception occured in transactional code");
} finally {
coord.end();
}
diff --git a/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/XAJpaTemplate.java b/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/XAJpaTemplate.java
index 84d6d09..3b478e6 100644
--- a/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/XAJpaTemplate.java
+++ b/jpa-support/src/main/java/org/apache/aries/jpa/support/impl/XAJpaTemplate.java
@@ -62,14 +62,17 @@
return result;
} catch (Throwable ex) {
safeRollback(tranToken, ex);
- throw wrapThrowable(ex);
+ if (ex instanceof Error) {
+ throw (Error)ex;
+ }
+ throw wrapThrowable(ex, "Exception occured in transactional code");
} finally {
try {
ta.finish(tm, tranToken);
} catch (Exception e) {
// We are throwing an exception, so we don't error it out
LOGGER.debug("Exception during finish of transaction", e);
- throw new RuntimeException("Exception during finish of transaction", e);
+ throw wrapThrowable(e, "Exception during finish of transaction");
} finally {
coord.end();
}