ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthieu Riou" <matth...@offthelip.org>
Subject Re: OdeService does not set error to the message exchange
Date Thu, 29 Nov 2007 16:30:37 GMT
Sorry about that, should be fixed now.

Matthieu

On Nov 29, 2007 7:45 AM, Nowakowski, Mateusz <
Mateusz.Nowakowski@sabre-holdings.com> wrote:

> No. It is fixed only for IN_ONLY direction. But we are using IN_OUT and
> the code for it remains the same.
>
> --
> Regards
> Mateusz Nowakowski
> -----Original Message-----
> From: matthieu.riou@gmail.com [mailto:matthieu.riou@gmail.com] On Behalf
> Of Matthieu Riou
> Sent: Wednesday, November 28, 2007 4:58 PM
> To: user@ode.apache.org
> Subject: Re: OdeService does not set error to the message exchange
>
> Hi,
>
> I've fixed it on the 1.1 branch, would you give it a try and see if it
> works
> for you?
>
> Thanks!
> Matthieu
>
> On Nov 27, 2007 5:46 AM, Nowakowski, Mateusz <
> Mateusz.Nowakowski@sabre-holdings.com> wrote:
>
> > When there's exception thrown in the OdeService.invokeOde:
> >
> > org.apache.ode.jbi.msgmap.MessageTranslationException: Could not find
> a
> > mapper for request message for JBI MEX ID:10.136.44.164-
> > 11681241c72-4:7; ODE MEX 4611686018427387904 is failed.
> >        at org.apache.ode.jbi.OdeService.invokeOde(OdeService.java:240)
> >        at
> >
> org.apache.ode.jbi.OdeService.onJbiMessageExchange(OdeService.java:148)
> >        at
> >
> org.apache.ode.jbi.JbiMessageExchangeEventRouter.onJbiMessageExchange(Jb
> > iMessageExchangeEventRouter.java:47)
> >        at org.apache.ode.jbi.Receiver$1.run(Receiver.java:179)
> >        at
> >
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
> >        at
> > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
> >        at java.util.concurrent.FutureTask.run(FutureTask.java:123)
> >        at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
> > r.java:650)
> >        at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
> > va:675)
> >        at java.lang.Thread.run(Thread.java:595)
> >
> > The exception is caught in onJbiMessageExchange, by the following
> code:
> >
> >            try {
> >                invokeOde(jbiMex, ((InOut) jbiMex).getInMessage());
> >                success = true;
> >            } catch (Exception ex) {
> >                __log.error("Error invoking ODE.", ex);
> >                err = ex;
> >            } catch (Throwable t) {
> >                __log.error("Unexpected error invoking ODE.", t);
> >                err = new RuntimeException(t);
> >            } finally {
> >                // If we got an error that wasn't sent.
> >                if (jbiMex.getStatus() == ExchangeStatus.ACTIVE &&
> > !success) {
> >                    if (err != null && jbiMex.getError() != null)  {
> >                        jbiMex.setError(err);
> >                    }
> >                    jbiMex.setStatus(ExchangeStatus.ERROR);
> >                    _ode.getChannel().send(jbiMex);
> >                }
> >            }
> > The condition (err != null && jbiMex.getError() != null)   leads to a
> > situation,
> > that the status of the MEX is set to ExchangeStatus.ERROR, but the
> error
> > of the MEX is not set (!)
> >
> > At the end of the day, the endpoint that invoked ODE, gets following
> > error:
> > java.lang.Exception: Unkown error (exchange aborted ?)
> >        at
> >
> org.apache.servicemix.http.endpoints.HttpConsumerEndpoint.process(HttpCo
> > nsumerEndpoint.java:263)
> >        at
> >
> org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.ja
> > va:71)
> >
> > because it cannot find the error in the MEX.
> >
> > --
> > Regards
> > Mateusz Nowakowski
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message