[
https://issues.apache.org/jira/browse/AXIS2-4642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anjana Fernando updated AXIS2-4642:
-----------------------------------
Attachment: Axis2Patch-4642.txt
Hi,
Hereby I'm attaching a patch to fix the issue.
A small description and the rationale for the changes,
I've made changes in "ListingAgent" and "AxisService" classes. In the
AxisService class, methods which takes in "OutputStream" instances close the
streams before they are returned, which is incorrect. As a general rule of
thumb, you should not be closing streaming that you did not create. Because the
one who's passing the output stream may have operations left to do with it.
where in this case, the OutputStream is the servlet's response. Which we should
let the servlet container to close, and we can just do "flush" operations to be
sure that the data is written immediately. And in my opinion the flush
operations also only need to be done in the method that is actually doing the
writing, i.e. "getWSDL" in AxisService class.
Cheers,
Anjana.
> ?wsdl query calls out.close() twice, confusing at least some Tomcat connectors
> ------------------------------------------------------------------------------
>
> Key: AXIS2-4642
> URL: https://issues.apache.org/jira/browse/AXIS2-4642
> Project: Axis2
> Issue Type: Bug
> Components: kernel
> Affects Versions: 1.5.1
> Environment: Axis2.war deployed in Tomcat 6.0.24, using ajp to jk
> isapi_redirect to IIS on Windows Server 2008.
> Reporter: Bruce G Stewart
> Priority: Minor
> Attachments: Axis2Patch-4642.txt
>
>
> AxisService.getWSDL() sends the response body for a ..service?wsdl query,
> then calls .flush() and .close() for its output stream. Upon return,
> ListingAgent.processListService() calls .flush() and .close() again for the
> same stream.
> The second close() interferes with the next request on the intermediate ajp
> connector socket.
> I don't know whether calling close() twice should be harmless but, in this
> case, it is not.
> [edit: Actually, the 2nd close() is harmelss. It's the flush() coming after
> the 1st close() that seems to be the problem.]
--
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]