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

Sebastian Wiemer commented on XMLRPC-137:
-----------------------------------------

I did a quick fix on this using the following patch:

-- XmlRpcStreamServer.java
183,184c183,186
<                               istream.close();
<                               istream = null;
---
>                               // changed my -snwiem-
>                               // This will throw an IOException (stream 
> already closed) on Sun AppServer 7 !!
>                               //istream.close();
>                               //istream = null;
192a195
>                               istream = null;
211,212c214,215
<                               ostream.close();
<                               ostream = null;
---
>                               //ostream.close();
>                               //ostream = null;
214a218
>                               ostream = null;
220,221c224,225
<                                       dest.close();
<                                       dest = null;
---
>                                       //dest.close();
>                                       //dest = null;
223a228
>                                       dest = null;

Cause: I don't see the requirements to explicitely close the streams in the 
public void execute(XmlRpcStreamRequestConfig pConfig, ServerStreamConnection 
pConnection) method. All stream-handling is done within the finally-blocks 
anyways, catching all errors away ;)

Bye
Sebastian

> 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
>
>
> 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