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 <
[EMAIL PROTECTED]> 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
>
>