TUSCANY-3822: call PolicyHandler.afterInvoke() with outbound MessageContext containing response message

git-svn-id: https://svn.apache.org/repos/asf/tuscany/sca-java-1.x/trunk@1086734 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceInMessageReceiver.java b/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceInMessageReceiver.java
index a0cfab9..ab96cc3 100644
--- a/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceInMessageReceiver.java
+++ b/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceInMessageReceiver.java
@@ -65,6 +65,11 @@
             }
             */
 
+            // TUSCANY-3822: moved afterInvoke() call from Axis2ServiceProvider           
+            for ( PolicyHandler policyHandler : policyHandlerList ) {
+                policyHandler.afterInvoke(null, inMC);
+            }        
+
         } catch (InvocationTargetException e) {
             Throwable t = e.getCause();
             if (t instanceof Exception) {
diff --git a/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceInOutSyncMessageReceiver.java b/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceInOutSyncMessageReceiver.java
index d467e0b..e5635da 100644
--- a/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceInOutSyncMessageReceiver.java
+++ b/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceInOutSyncMessageReceiver.java
@@ -80,6 +80,12 @@
                 soapEnvelope.getBody().addChild(responseOM);
             }
             outMC.setEnvelope(soapEnvelope);
+
+            // TUSCANY-3822: moved afterInvoke() call from Axis2ServiceProvider           
+            for ( PolicyHandler policyHandler : policyHandlerList ) {
+                policyHandler.afterInvoke(responseOM, outMC);
+            }        
+
             outMC.getOperationContext().setProperty(Constants.RESPONSE_WRITTEN, Constants.VALUE_TRUE);
 
         } catch (InvocationTargetException e) {
diff --git a/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java b/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java
index 456001e..29d0cdb 100644
--- a/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java
+++ b/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceProvider.java
@@ -765,9 +765,8 @@
         RuntimeWire wire = ((RuntimeComponentService)contract).getRuntimeWire(getBinding());
         Object response =  wire.invoke(op, msg);
         
-        for ( PolicyHandler policyHandler : policyHandlerList ) {
-            policyHandler.afterInvoke(response, inMC);
-        }        
+        // TUSCANY-3822: moved afterInvoke() call to Axis2ServiceInOutSyncMessageReceiver
+        // and Axis2ServiceInMessageReceiver
         
         return response;
     }