summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x
diff options
context:
space:
mode:
authornash <nash@13f79535-47bb-0310-9956-ffa450edef68>2011-03-31 19:54:01 +0000
committernash <nash@13f79535-47bb-0310-9956-ffa450edef68>2011-03-31 19:54:01 +0000
commit4f92fc55362bff75beb3854d2511f3b9d38f0f13 (patch)
treeab8f5819812f38ca07ff513180fce3bed3051228 /sca-java-1.x
parent90de79537616a706fa6f9ca2bb87744abd2dee2a (diff)
TUSCANY-3838: call PolicyHandler.afterInvoke() when AxisFault is thrown
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1087425 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-1.x')
-rw-r--r--sca-java-1.x/branches/sca-java-1.6.2/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/sca-java-1.x/branches/sca-java-1.6.2/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java b/sca-java-1.x/branches/sca-java-1.6.2/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java
index 4087bd80a5..023e3da43e 100644
--- a/sca-java-1.x/branches/sca-java-1.6.2/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java
+++ b/sca-java-1.x/branches/sca-java-1.6.2/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java
@@ -164,6 +164,7 @@ public class Axis2BindingInvoker implements Invoker, DataExchangeSemantics {
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 implements Invoker, DataExchangeSemantics {
} 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();