JAX-WS: Client engine should detach input stream after use
----------------------------------------------------------

                 Key: AXIS2-3966
                 URL: https://issues.apache.org/jira/browse/AXIS2-3966
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: jaxws
            Reporter: Rich Scheuerle
            Assignee: Rich Scheuerle


Background:
The JAX-WS client engine (dispatch/proxy/asyncResponse) is ultimately 
responsible for creating business objects (or exception) for the client call.
After that point, the unmarshalling is complete and the input stream (from the 
transport layer) is no longer needed.

Problem:
In some situations, the input stream is not closed.  Since the input stream 
comes from the transport layer, this could result in resources not being freed. 
 (For example connection resources may not be freed).

Solution:
The soap builder code already wraps the incoming input stream with an axiom 
DetachableInputStream.  The DetachableInputStream has a detach method, which 
copies the remainder of the original stream to a local stream.  This allows the 
original stream (i.e. the HttpInputStream) to free its resources without any 
loss of information for the consumer of the stream.  

I am making changes to the jaxws dispatch/proxy/asyncResponse code to always 
call DetachableInputStream.detach() after all of the business objects are 
unmarshalled.  This will effectively guarantee that the input stream from the 
transport layer is closed and allow resources to be freed.  

I have am testing these changes and will integrate soon.  All of the changes 
are in the jaxws module

-- 
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