You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2015/11/19 12:02:55 UTC
svn commit: r1715157 -
/aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java
Author: cschneider
Date: Thu Nov 19 11:02:55 2015
New Revision: 1715157
URL: http://svn.apache.org/viewvc?rev=1715157&view=rev
Log:
[ARIES-1454] Avoid NPE
Modified:
aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java
Modified: aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java?rev=1715157&r1=1715156&r2=1715157&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java (original)
+++ aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java Thu Nov 19 11:02:55 2015
@@ -28,7 +28,6 @@ import javax.transaction.Transactional.T
import org.apache.aries.blueprint.Interceptor;
import org.osgi.service.blueprint.reflect.ComponentMetadata;
import org.osgi.service.coordinator.Coordination;
-import org.osgi.service.coordinator.CoordinationException;
import org.osgi.service.coordinator.Coordinator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -75,11 +74,7 @@ public class TxInterceptorImpl implement
}
LOGGER.debug("PostCallWithException for bean {}, method {}.", getCmId(cm), m.getName(), ex);
final TransactionToken token = (TransactionToken)preCallToken;
- try {
- token.getCoordination().end();
- } catch (CoordinationException e){
- LOGGER.debug(e.getMessage(), e);
- }
+ safeEndCoordination(token);
try {
Transaction tran = token.getActiveTransaction();
if (tran != null && isRollBackException(ex)) {
@@ -93,7 +88,6 @@ public class TxInterceptorImpl implement
}
}
-
@Override
public void postCallWithReturn(ComponentMetadata cm, Method m, Object returnType, Object preCallToken)
throws Exception {
@@ -106,7 +100,7 @@ public class TxInterceptorImpl implement
throw new IllegalStateException("Expected a TransactionToken from preCall but got " + preCallToken);
}
final TransactionToken token = (TransactionToken)preCallToken;
- token.getCoordination().end();
+ safeEndCoordination(token);
try {
token.getTransactionAttribute().finish(tm, token);
} catch (Exception e) {
@@ -117,6 +111,16 @@ public class TxInterceptorImpl implement
throw rbe;
}
}
+
+ private void safeEndCoordination(final TransactionToken token) {
+ try {
+ if (token != null && token.getCoordination() != null) {
+ token.getCoordination().end();
+ }
+ } catch (Exception e){
+ LOGGER.debug(e.getMessage(), e);
+ }
+ }
private static String getCmId(ComponentMetadata cm) {
return cm == null ? null : cm.getId();