avax.jbi.messaging.MessagingException in the ConsumerProcessor
--------------------------------------------------------------

                 Key: SMXCOMP-469
                 URL: https://issues.apache.org/activemq/browse/SMXCOMP-469
             Project: ServiceMix Components
          Issue Type: Bug
          Components: servicemix-http
            Reporter: Volodymyr Zhabiuk


In the ConsumerProcessor, when the http response is formed and sent back to the 
requesting party, the following error occured:
{code}
SEVERE: Error processing exchange 
org.apache.servicemix.jbi.runtime.impl.inouti...@158aac4
java.lang.Exception: HTTP request has timed out
        at 
org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:96)
        at 
org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:368)
        at 
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:621)
        at 
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:592)
        at 
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:477)
        at 
org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Mar 3, 2009 4:27:27 PM org.apache.servicemix.common.AsyncBaseLifeCycle 
processExchangeInTx
SEVERE: Error setting exchange status to ERROR
javax.jbi.messaging.MessagingException: Can not send a terminated exchange
        at 
org.apache.servicemix.jbi.runtime.impl.MessageExchangeImpl.afterSend(MessageExchangeImpl.java:257)
        at 
org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:176)
        at 
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:492)
        at 
org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
{code}

In the finally block of the process(HttpServletRequest request, 
HttpServletResponse response) method
{code}
finally {
                exchange.setStatus(ExchangeStatus.DONE);
                channel.send(exchange);
            }
{code}
And that causes messaging exception in the MessageExchangeImpl
{code}
void afterSend() throws MessagingException {
        if (previousStatus == ExchangeStatus.DONE || previousStatus == 
ExchangeStatus.ERROR) {
            throw new MessagingException("Can not send a terminated exchange");
        }
    }
{code}




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