axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anjana Fernando (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AXIS2-4642) ?wsdl query calls out.close() twice, confusing at least some Tomcat connectors
Date Thu, 22 Apr 2010 15:27:50 GMT

     [ 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: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Mime
View raw message