[ 
https://issues.apache.org/jira/browse/XMLRPC-137?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12514316
 ] 

Chris Schmidt commented on XMLRPC-137:
--------------------------------------

Very short sighted of me, sorry about that... Is anyone aware if this is still 
an issue with newer versions of Sun Application Server? If this is really 
something that needs to be patched, the only answer I can think of (having very 
little experience with Sun Application Server) is to create a subclass of 
XmlRpcStreamServer for SAS specific instances that leaves only the set of the 
stream to null and the stream.close() in the finally clause to cleanup in case 
of error.  Since the call to close the stream is already wrapped in a 
try...catch in the finally clause, SAS would not complain about it already 
being closed.

I am sure that SAS has it's own flavor of Wrapper on the ServletRequest that 
you could check for, but short of adding that particular class and it's 
dependencies to the XMLRPC dependencies (which would be stupid) or just doing a 
String comparison on the classname there is no other way to automagically know 
if the Servlet is running in SAS or any other brand of App Server..



> javax.servlet.ServletException: I/O error while processing request: This 
> output stream has already been closed
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: XMLRPC-137
>                 URL: https://issues.apache.org/jira/browse/XMLRPC-137
>             Project: XML-RPC
>          Issue Type: Bug
>          Components: Releases
>    Affects Versions: 3.0
>         Environment: Sun Application Server 7, Java 1.4.2_x
>            Reporter: Sebastian Wiemer
>             Fix For: unspecified
>
>         Attachments: XMLRPC-137.patch
>
>
> Hi,
> there's an issue with the Sun Application Server 7 on booth ends (client, 
> server) using XmlRpcServletServer. This error does not occure on Tomcat 5x 
> (running booth client and server) or other client/server implementations 
> based on eg python or ruby.
> The clients successfully send the request to the server endpoint. The server 
> recieved to call and processed all parameters. The error seems
> to occure, when the server writes the response back to the client. The 
> problem is, that althouch the business logic behind the request was processed 
> correctly, the client doen't have a chance to get the response value 
> (including exceptions)
> On the server side we get the following exception:
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout: 2007-03-13 
> 12:39:16,936 [service-j2ee-3] INFO  
> com.gfk.management4c.service.impl.Management4cServiceImpl - gfk4u wants to 
> activate account 'wrbaer'
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout: 2007-03-13 
> 12:39:16,937 [service-j2ee-3] ERROR 
> org.apache.xmlrpc.server.XmlRpcStreamServer - execute: Error while performing 
> request
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout: java.io.IOException: 
> Cannot close the same input stream twice
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> org.apache.catalina.connector.RequestStream.close(RequestStream.java:155)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:183)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:103)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> com.gfk.xmlrpc.spring.SpringXmlRpcServlet.doService(SpringXmlRpcServlet.java:97)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:394)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:358)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> org.apache.catalina.core.StandardWrapperValve.invokeServletService(StandardWrapperValve.java:720)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:309)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:203)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:158)
> [13/Mar/2007:12:39:16] INFO (22136): CORE3282: stdout:  at 
> com.iplanet.ias.web.WebContainer.service(WebContainer.java:850)
> The client side gives:
> [13/Mar/2007:12:39:16] INFO (15538): CORE3282: stdout: 2007-03-13 
> 12:39:16,943 [service-j2ee-2] ERROR CmcCaller  - Could not activate account: 
> wrbaer
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr: 
> org.apache.xmlrpc.XmlRpcException: Cannot close the same input stream twice
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:184)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:145)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:94)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:39)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:53)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:166)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:136)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:125)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> com.gfk.gfk4u.profile.xmlrpc.impl.CmcCaller.activate(CmcCaller.java:73)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> com.gfk.gfk4u.profile.cocoon.acting.ProfileModifyAction.act(ProfileModifyAction.java:156)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:124)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:277)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:103)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:277)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:103)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:277)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.Cocoon.process(Cocoon.java:639)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1098)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.catalina.core.StandardWrapperValve.invokeServletService(StandardWrapperValve.java:720)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.catalina.core.StandardWrapperValve.access$000(StandardWrapperValve.java:118)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.catalina.core.StandardWrapperValve$1.run(StandardWrapperValve.java:278)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> java.security.AccessController.doPrivileged(Native Method)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:274)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:203)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:158)
> [13/Mar/2007:12:39:16] WARNING (15538): CORE3283: stderr:       at 
> com.iplanet.ias.web.WebContainer.service(WebContainer.java:850)
> Do you know any transform layers which work correctly with the Sun 
> Application Server ?
> greets,
> Sebastian

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to