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]

Reply via email to