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.

Reply via email to