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

Guillaume Nodet resolved SMXCOMP-469.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: servicemix-shared-2009.01
                   servicemix-http-2009.01
         Assignee: Guillaume Nodet

svn commit -m "SMXCOMP-469: Terminated exchanges are sometimes sent when 
handling an exception, leading to errors"
Sending        
servicemix-common/src/main/java/org/apache/servicemix/common/AsyncBaseLifeCycle.java
Transmitting file data .
Committed revision 755643.

svn commit -m "SMXCOMP-469: Terminated exchanges are sometimes sent when an 
handling an exception, leading to errors"
Sending        
src/main/java/org/apache/servicemix/http/processors/ConsumerProcessor.java
Transmitting file data .
Committed revision 755644.


> Terminated exchanges are sometimes sent when handling an exception, leading 
> to errors
> -------------------------------------------------------------------------------------
>
>                 Key: SMXCOMP-469
>                 URL: https://issues.apache.org/activemq/browse/SMXCOMP-469
>             Project: ServiceMix Components
>          Issue Type: Bug
>          Components: servicemix-http
>            Reporter: Volodymyr Zhabiuk
>            Assignee: Guillaume Nodet
>             Fix For: servicemix-http-2009.01, servicemix-shared-2009.01
>
>
> 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