[ https://issues.apache.org/jira/browse/CXF-4154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13237564#comment-13237564 ]
Andrei Shakirin commented on CXF-4154: -------------------------------------- Yep, you are right. Case is a little bit exotic, but anyway - patch is not safe. I am going to fix it in the following way: provide a thread safe cache map for the conduits with protocol as key. In getSelectedConduit() check map first and create new conduit only if it is not cached for requested protocol. In close() release all conduits from the map. Patch will be improved soon. > AbstractConduitSelector reused cached conduit even if protocol was changed > -------------------------------------------------------------------------- > > Key: CXF-4154 > URL: https://issues.apache.org/jira/browse/CXF-4154 > Project: CXF > Issue Type: Bug > Components: Core > Reporter: Andrei Shakirin > Attachments: AbstractConduitSelector.patch > > > Hi, > Actually AbstractConduitSelector.getSelectedConduit() creates and caches > conduit in selectedConduit variable. Cached conduit is reused by the next > calls. > I see the following problem: if user changed protocol in URI between calls, > AbstractConduitSelector still uses cached Conduit even it cannot process new > URL. In my case cached HTTP consuit tries to process UDP URL. > Proposal for fix: check if protocol in URL was changed and if yes, close and > reset selectedConduit. > Patch is attached. > Regards, > Andrei. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira