You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Freeman Fang (JIRA)" <ji...@apache.org> on 2010/02/23 10:44:40 UTC

[jira] Resolved: (SMXCOMP-718) Improper handling of exchange if there is no out message in exchange.

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

Freeman Fang resolved SMXCOMP-718.
----------------------------------

    Resolution: Working as Designed

> 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
>            Assignee: Freeman Fang
>            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.