[
https://issues.apache.org/jira/browse/CXF-2387?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Kulp resolved CXF-2387.
------------------------------
Assignee: Daniel Kulp
Fix Version/s: Invalid
Resolution: Fixed
This has been more or less implemented for a very long time.
The MessageSenderEndingInterceptor which is used by the outgoing chain for both
client and server calls:
{code}
getConduit(message).close(message);
{code}
Where any subclass of Conduit can override the close(Message) call to do
whatever custom stuff needs to be done.
> CXF does not call ConduitSelector.complete() on the server side.
> ----------------------------------------------------------------
>
> Key: CXF-2387
> URL: https://issues.apache.org/jira/browse/CXF-2387
> Project: CXF
> Issue Type: Improvement
> Components: Core
> Reporter: Gyorgy Orban
> Assignee: Daniel Kulp
> Fix For: Invalid
>
>
> I guess the main reason for it is that closing the input stream in a servlet
> is usually not a good idea. As the default implementation in
> PreexistingConduitSelector.complete() closes the input stream of the request
> message, it would cause problems when CXF is deployed in Jetty or in other
> servlet containers. On the other hand, from design and extensibility
> perspective it would be quite useful to call ConduitSelector.complete()
> similarly to the client side for the following reasons:
> * integration with other transports could make use of such a lifecycle
> callback
> * If the request InputStream is wrapped (let's say we want to monitor
> throughput or filter the inputstream for some reason) it is quite difficult
> to catch the end of the stream without a close() callback on the InputStream.
> If complete() was called, a custom ConduitSelector could solve that.
> I think ConduitSelector.complete() could be included in the Destination
> implementations.
> Could you please give your opinion on this?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.