Author: veithen
Date: Sun Aug 14 14:19:13 2011
New Revision: 1157535
URL: http://svn.apache.org/viewvc?rev=1157535&view=rev
Log:
AXIS2-5062:
* Committed the patch for BaseDispatch provided by Ivan.
* Enabled the corresponding test case.
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/SOAPMessageDispatchTests.java
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/BaseDispatch.java
Modified:
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/SOAPMessageDispatchTests.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/SOAPMessageDispatchTests.java?rev=1157535&r1=1157534&r2=1157535&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/SOAPMessageDispatchTests.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws-integration/test/org/apache/axis2/jaxws/dispatch/SOAPMessageDispatchTests.java
Sun Aug 14 14:19:13 2011
@@ -187,7 +187,7 @@ public class SOAPMessageDispatchTests ex
*
* @throws Exception
*/
- public void _testConnectionReleaseForInvokeOneWayWithMEPMismatch() throws
Exception {
+ public void testConnectionReleaseForInvokeOneWayWithMEPMismatch() throws
Exception {
Service svc = Service.create(serviceName);
svc.addPort(portName, null, url);
Dispatch<SOAPMessage> dispatch = svc.createDispatch(portName,
Modified:
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/BaseDispatch.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/BaseDispatch.java?rev=1157535&r1=1157534&r2=1157535&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/BaseDispatch.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/client/dispatch/BaseDispatch.java
Sun Aug 14 14:19:13 2011
@@ -450,6 +450,7 @@ public abstract class BaseDispatch<T> ex
public void invokeOneWay(Object obj) throws WebServiceException {
// All exceptions are caught and rethrown as a WebServiceException
+ MessageContext requestMsgCtx = null;
try {
if (log.isDebugEnabled()) {
log.debug("Entered one-way invocation:
BaseDispatch.invokeOneWay()");
@@ -462,7 +463,7 @@ public abstract class BaseDispatch<T> ex
// Create the MessageContext to hold the actual request message
and its
// associated properties
- MessageContext requestMsgCtx = new MessageContext();
+ requestMsgCtx = new MessageContext();
requestMsgCtx.getAxisMessageContext().setProperty(BINDING_PROVIDER, this);
requestMsgCtx.setEndpointDescription(getEndpointDescription());
invocationContext.setRequestMessageContext(requestMsgCtx);
@@ -550,6 +551,18 @@ public abstract class BaseDispatch<T> ex
" Exception caught: ", e);
}
throw ExceptionFactory.makeWebServiceException(e);
+ } finally {
+ // In all other cases we rely on freeInputStream to perform the
clean up. Since we don't expect
+ // a response in the invokeOneWay case, we need to perform call
TransportSender#cleanup explicitly
+ try {
+ if (requestMsgCtx != null &&
requestMsgCtx.getAxisMessageContext() != null) {
+ org.apache.axis2.context.MessageContext axisMsgCtx =
requestMsgCtx.getAxisMessageContext();
+ if (axisMsgCtx.getTransportOut() != null &&
axisMsgCtx.getTransportOut().getSender() != null) {
+
axisMsgCtx.getTransportOut().getSender().cleanup(axisMsgCtx);
+ }
+ }
+ } catch (Exception ignore) {
+ }
}
}