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]