[ 
https://issues.apache.org/activemq/browse/SMXCOMP-718?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=57801#action_57801
 ] 

Freeman Fang commented on SMXCOMP-718:
--------------------------------------

Hi Ryan,

You can see the  java.lang.IllegalStateException: component is not owner
for many reasons, it MAY come from your incorrect workflow.

As the code your point out here, we do need done(exchange) (which will set DONE 
status for message exchange)  even for InOnly MEP. 
So the code here is correct IMHO.

Regards
Freeman


 

> 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.

Reply via email to