Author: nash
Date: Tue Mar 29 21:31:15 2011
New Revision: 1086757

URL: http://svn.apache.org/viewvc?rev=1086757&view=rev
Log:
TUSCANY-3838: call PolicyHandler.afterInvoke() when AxisFault is thrown

Modified:
    
tuscany/sca-java-1.x/trunk/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java

Modified: 
tuscany/sca-java-1.x/trunk/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-1.x/trunk/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java?rev=1086757&r1=1086756&r2=1086757&view=diff
==============================================================================
--- 
tuscany/sca-java-1.x/trunk/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java
 (original)
+++ 
tuscany/sca-java-1.x/trunk/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java
 Tue Mar 29 21:31:15 2011
@@ -164,6 +164,7 @@ public class Axis2BindingInvoker impleme
             Axis2BindingHeaderConfigurator.setHeader(requestMC, msg, 
axis2TokenAuthenticationPolicy.getTokenName());
         }
         
+        MessageContext responseMC = null;
         // Allow privileged access to read properties. Requires 
PropertiesPermission read in
         // security policy.
         try {
@@ -176,12 +177,13 @@ public class Axis2BindingInvoker impleme
         } catch (PrivilegedActionException e) {
             operationClient.complete(requestMC);
             throw (AxisFault)e.getException();
-        }
-
-        MessageContext responseMC = 
operationClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+        } finally {
+            // TUSCANY-3838: call afterInvoke() on both normal and exception 
paths
+            responseMC = 
operationClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
         
-        for ( PolicyHandler policyHandler : policyHandlerList ) {
-            policyHandler.afterInvoke(msg, responseMC, operationClient);
+            for ( PolicyHandler policyHandler : policyHandlerList ) {
+                policyHandler.afterInvoke(msg, responseMC, operationClient);
+            }
         }
         
         OMElement response = 
responseMC.getEnvelope().getBody().getFirstElement();


Reply via email to