Client sender connections not cleaned up when AxisFault received.
-----------------------------------------------------------------
Key: AXIS2-3218
URL: https://issues.apache.org/jira/browse/AXIS2-3218
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: codegen
Affects Versions: 1.2, 1.3
Environment: Windows XP, Java 5
Reporter: Aaron Gourley
I suspect that lines 439-513 of
java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
has a bug. This bug results in generated stubs not cleaning up their
connections properly.
The following line (491) is only called on a successful request:
_messageContext.getTransportOut().getSender().cleanup(_messageContext);
If an AxisFault is thrown, then the message context is not cleaned up and the
connection is not closed properly.
I propose the following fix:
- Remove line 491
- Insert the following before line 439 (i.e. before
"_operationClient.execute(true);")
try {
- Insert the following before line 514:
}finally{
_messageContext.getTransportOut().getSender().cleanup(_messageContext);
}
This will force that cleanup be called on the message context after every
execution of the operation. I realize that Axis2 1.3 has added
Options.setCallTransportCleanup() method and a ServiceClient.cleanupTransport()
method for this (which is good), but this fix might hit one of the root causes
of stale connections being left open.
I'll attach my version of the modified xsl file (used Axis2 1.3 source release
as starting point). Verified that the problem still exists in trunk.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]