You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Andreas Veithen (JIRA)" <ji...@apache.org> on 2011/08/14 12:35:27 UTC

[jira] [Resolved] (AXIS2-5093) Connection cannot be cleaned up after 404 response

     [ https://issues.apache.org/jira/browse/AXIS2-5093?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andreas Veithen resolved AXIS2-5093.
------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.7.0
                   1.6.1
                   1.5.6

> Connection cannot be cleaned up after 404 response
> --------------------------------------------------
>
>                 Key: AXIS2-5093
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5093
>             Project: Axis2
>          Issue Type: Bug
>          Components: transports
>    Affects Versions: 1.5.4
>         Environment: Axis 1.5.4, Tomcat 6.0
>            Reporter: Claire Walsh
>            Assignee: Andreas Veithen
>             Fix For: 1.5.6, 1.6.1, 1.7.0
>
>
> I am using the WSDL2Java client stub classes to make a web service call via POST.  When the server responds with certain error codes (401 and 404 are the two I have encountered) the connection is not cleaned up.  So after 2 error responses are received, all future connection attempts will time out.  This is the stack trace received on the 3rd call:
> org.apache.commons.httpclient.ConnectionPoolTimeoutException: Timeout waiting for connection
> 	at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConnection(MultiThreadedHttpConnectionManager.java:497)
> 	at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getConnectionWithTimeout(MultiThreadedHttpConnectionManager.java:416)
> 	at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:153)
> 	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
> 	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
> 	at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:557)
> 	at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:199)
> 	at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)
> 	at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
> 	at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
> 	at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:438)
> 	at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
> 	at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
> 	at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
> 	at com.micropact.entellitrak.services.client.stub.ConfigurationWebServiceStub.getTrackingConfig(ConfigurationWebServiceStub.java:393)
> 	at com.micropact.entellitrak.services.client.ConfigurationWebClient.importTrackingConfig(ConfigurationWebClient.java:114)
> 	at com.micropact.entellitrak.cfg.service.ConfigurationUtilitiesService.updateConfigurationFromWeb(ConfigurationUtilitiesService.java:61)
> 	at com.micropact.entellitrak.cfg.controller.action.ConfigurationUtilitiesAction.webUpdateConfiguration(ConfigurationUtilitiesAction.java:277)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> 	at java.lang.reflect.Method.invoke(Unknown Source)
> 	at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
> 	at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
> 	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
> 	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
> 	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
> 	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at com.micropact.entellitrak.web.filter.AuthenticationFilter.continueProcessing(AuthenticationFilter.java:248)
> 	at com.micropact.entellitrak.web.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:131)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at com.micropact.entellitrak.web.filter.CacheFilter.doFilter(CacheFilter.java:108)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at com.micropact.entellitrak.web.filter.TrackingStateFilter.doFilter(TrackingStateFilter.java:88)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at com.micropact.entellitrak.web.filter.ConcurrentUserFilter.doFilter(ConcurrentUserFilter.java:111)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> 	at java.lang.Thread.run(Unknown Source)
> To reproduce: On the client side, set an incorrect URL for your server address, and attempt to call the web service several times.  The first few will correctly receive a 404 response, but subsequent calls will result in a timeout error.
> Possible cause: In the handleResponse() method of org.apache.axis2.transport.http.HTTPSender, the HttpMethod is not saved in the MessageContext for 401 or 404 responses.  So later calling service.cleanupTransport() has no effect.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org