Project: talendesb
Issue TESB-6781: Route cannot get the specific exception thrown by the referenced job
In studio build V5.2.0NB_r89461. Route is using cTalendJob and cOnException components, then the referenced job throw a technical exception such as RuntimeException with corresponding cause, but on route side cannot get the exception with corresponding cause specified in the referenced job. In cOnException component, specify to handle exceptions including java.lang.Exception and java.lang.Error. Please see the sample "TestcTalendThrowException.zip" in attachment, then run this route "TestcTalendThrowException", the exception log on route side as below: {noformat} --------------Message body in Talend Job-------------- the message body in talend job is : TestcTalendJob20120823-Exception ------------------------End------------------------ Exception in component tJavaRow_1 java.lang.RuntimeException: TestcTalendJob20120823-Exception mfshen20120822.ctalendjobthrowexception_0_4.cTalendJobThrowException.tRouteInput_1Process(cTalendJobThrowException.java:637) mfshen20120822.ctalendjobthrowexception_0_4.cTalendJobThrowException.runJobInTOS(cTalendJobThrowException.java:911) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:876) org.talend.camel.TalendProducer.invokeTalendJob(TalendProducer.java:68) org.talend.camel.TalendProducer.process(TalendProducer.java:44) org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61) org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:115) org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:285) org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110) org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71) org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91) org.apache.camel.processor.interceptor.HandleFaultInterceptor.process(HandleFaultInterceptor.java:41) org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:333) org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:223) org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:304) org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) org.apache.camel.processor.Pipeline.process(Pipeline.java:117) org.apache.camel.processor.Pipeline.process(Pipeline.java:80) org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150) org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117) org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:50) org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71) org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99) org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86) org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:134) org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:63) java.util.TimerThread.mainLoop(Timer.java:512) java.util.TimerThread.run(Timer.java:462) ---------------Exception message in Route--------------- Execution of Talend job 'mfshen20120822.ctalendjobthrowexception_0_4.cTalendJobThrowException' with args: [--context=Default, --context_param firedTime=Thu Aug 23 11:33:20 CST 2012, --context_param breadcrumbId=ID-mfshen-PC-50505-1345692799935-0-1]' failed, see stderr for details ---------------End--------------- {noformat}
Story points: 1