Null MessageExchange parameter passed to sendError() method after
HttpConsumerEndpoint timeout
----------------------------------------------------------------------------------------------
Key: SM-1294
URL: https://issues.apache.org/activemq/browse/SM-1294
Project: ServiceMix
Issue Type: Bug
Components: servicemix-http
Affects Versions: 3.2.1
Reporter: Bruce Snyder
Assignee: Bruce Snyder
If a request to HttpConsumerEndpoint timesout, the container is returning an
"Exchange Not Found" error:
{code}
2007-11-15 12:48:11,557 [main ] INFO ConsumerEndpointTimeoutTest
- <?xml version='1.0'
encoding='UTF-8'?><error><![CDATA[java.lang.IllegalStateException: Exchange not
found
at
org.apache.servicemix.http.endpoints.HttpConsumerEndpoint.process(HttpConsumerEndpoint.java:259)
at
org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:320)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:375)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
at
org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:511)
at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
]]></error>
{code}
This looks to be caused due to the httpConsumerEndpoint populating the
exchanges hashmap just before calling resume() on the continuation. When a
timeout occurs, this logic is not executed so the exchanges hashmap is missing
the exchange.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.