in meecrowave-jta/src/main/java/org/apache/meecrowave/jta/InterceptorBase.java [163:176]
private Exception unwrap(final Exception e) {
Exception error = e;
while (error != null && (SystemException.class.isInstance(error) || TransactionRolledbackException.class.isInstance(error))) {
final Throwable cause = error.getCause();
if (cause == error) {
break;
}
error = Exception.class.isInstance(cause) ? Exception.class.cast(cause) : null;
}
if (RollbackException.class.isInstance(error) && Exception.class.isInstance(error.getCause())) {
error = Exception.class.cast(error.getCause());
}
return error;
}