Improper handling of exchange if there is no out message in exchange.
---------------------------------------------------------------------
Key: SMXCOMP-718
URL: https://issues.apache.org/activemq/browse/SMXCOMP-718
Project: ServiceMix Components
Issue Type: Bug
Components: servicemix-http
Affects Versions: servicemix-http-2009.02
Environment: Windows XP, FUSE ESB 3.4.0.4
Reporter: Ryan Moquin
Priority: Minor
I'm guessing this is the same in the newer servicemix-http components (I can't
find the source to verify), but I noticed that this error happens a fair amount:
<error>
java.lang.IllegalStateException: component is not owner when trying to set
error: java.lang.IllegalStateException: component is not owner
at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setError(MessageExchangeImpl.java:264)
at
org.apache.servicemix.common.endpoints.SimpleEndpoint.fail(SimpleEndpoint.java:93)
at
org.apache.servicemix.http.endpoints.HttpConsumerEndpoint.process(HttpConsumerEndpoint.java:326)
at
org.apache.servicemix.http.HttpBridgeServlet.service(HttpBridgeServlet.java:56)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:363)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:320)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:397)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at
org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(SelectChannelConnector.java:525)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)
Caused by: java.lang.IllegalStateException: component is not owner
at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setStatus(MessageExchangeImpl.java:251)
at
org.apache.servicemix.common.endpoints.SimpleEndpoint.done(SimpleEndpoint.java:84)
at
org.apache.servicemix.http.endpoints.HttpConsumerEndpoint.process(HttpConsumerEndpoint.java:324)
... 14 more
</error>
This happens if there is no out message on the exchange when it's an InOut,
after processing the retrycontinuation. It seems as though this if statement:
NormalizedMessage outMsg = exchange.getMessage("out");
if (outMsg != null) {
sendOut(exchange, outMsg, request, response);
}
done(exchange);
should throw an exception if there is no out message and the Exchange is an
InOut message. Otherwise, the done message is called at an inappropriate time
since the sendOut gets skipped and the done then gets called.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.