Details
-
Type:
Bug
-
Status:
Resolved
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: 0.5.0
-
Fix Version/s: 0.5.1
-
Component/s: None
-
Security Level: Public
-
- Environment:
-
Petals 4.3.0-bêta1
petals-se-camel-0.5.0.zip
RHEL 6.4 64
Attachments
Issue Links
| Depends | |||
|---|---|---|---|
|
|||
Activity
| Field | Original Value | New Value |
|---|---|---|
| Attachment | jbi.xml [ 10780 ] |
| Attachment | petals.log [ 10781 ] |
| Priority | Minor [ 4 ] | |
| Status | New [ 10000 ] | Open [ 10002 ] |
| Status | Open [ 10002 ] | In Progress [ 10003 ] |
| Comment |
[ Problem: there is no flow attributes in the message
Solution: do not assume in the Camel SE that the flow attributes are present. ] |
| Description |
Hello,
{color:red} we use camel-se with following route : {color} from("file:///XXX?noop=true") .to("exec:YYY?args=ARGS").process(processor).to("petals://executeSatinMassCommands"); {color:red} and this processor implementation : {color} StringBuilder strBuilder = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); strBuilder .append("<jaxb:execute xmlns:jaxb=\"http://jaxb.bss.ocb.orange.com/\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">"); strBuilder.append("<instruction>"); strBuilder.append("<commande>/bin/bash</commande>"); strBuilder.append("<args>-c</args>").append( "<args>XXX</args>"); strBuilder.append("</instruction>"); strBuilder.append("</jaxb:execute>"); exchange.getOut().setBody(new StreamSource(new StringReader(strBuilder.toString()))); {color:red} The camel exec component do its job as the target (InOnly) BC in petals. But we get this stack trace in petals.log : {color} sample-0 2015/09/29 13:31:12,361 GMT+0200 INFO [Petals.Container.Components.petals-se-camel] : Received an async answer, let's continue our execution for the exchange petals:uid:96559d40-669d-11e5-92e1-080027c8888b sample-0 2015/09/29 13:31:12,361 GMT+0200 SEVERE [Petals.Container.Components.petals-se-camel] : null java.lang.NullPointerException at org.ow2.petals.commons.log.PetalsExecutionContext.putFlowAttributes(PetalsExecutionContext.java:197) at org.ow2.petals.camel.se.CamelJBIListener.handleAsyncJBIMessage(CamelJBIListener.java:133) at org.ow2.petals.camel.se.CamelJBIListener.onAsyncJBIMessage(CamelJBIListener.java:110) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processInOnlyAsConsumer(MessageExchangeProcessor.java:586) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processAsConsumer(MessageExchangeProcessor.java:407) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.process(MessageExchangeProcessor.java:354) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.run(MessageExchangeProcessor.java:257) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) sample-0 2015/09/29 13:31:12,362 GMT+0200 INFO [Petals.Container.Components.petals-se-camel] : Received an async answer, let's continue our execution for the exchange petals:uid:965c7b10-669d-11e5-92e1-080027c8888b sample-0 2015/09/29 13:31:12,363 GMT+0200 SEVERE [Petals.Container.Components.petals-se-camel] : null java.lang.NullPointerException at org.ow2.petals.commons.log.PetalsExecutionContext.putFlowAttributes(PetalsExecutionContext.java:197) at org.ow2.petals.camel.se.CamelJBIListener.handleAsyncJBIMessage(CamelJBIListener.java:133) at org.ow2.petals.camel.se.CamelJBIListener.onAsyncJBIMessage(CamelJBIListener.java:110) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processInOnlyAsConsumer(MessageExchangeProcessor.java:586) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processAsConsumer(MessageExchangeProcessor.java:407) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.process(MessageExchangeProcessor.java:354) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.run(MessageExchangeProcessor.java:257) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) sample-0 2015/09/29 13:31:12,378 GMT+0200 MONIT [Petals.Container.Components.petals-se-camel] : traceCode = 'consumeFlowStepEnd', flowInstanceId = null, flowStepId = null sample-0 2015/09/29 13:31:12,379 GMT+0200 MONIT [Petals.Container.Components.petals-se-camel] : traceCode = 'consumeFlowStepEnd', flowInstanceId = null, flowStepId = null {color:red} and no monitoring trace were logged. If we force synchronous execution with "to("petals://executeSatinMassCommands?synchronous=true"); there's no more stack trace, all route is run but no monit log are write too. {color} |
Hello,
We use camel-se with following route: {code} from("file:///XXX?noop=true") .to("exec:YYY?args=ARGS").process(processor).to("petals://executeSatinMassCommands"); {code} and this processor implementation : {code:java} StringBuilder strBuilder = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); strBuilder.append("<jaxb:execute xmlns:jaxb=\"http://jaxb.bss.ocb.orange.com/\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">"); strBuilder.append("<instruction>"); strBuilder.append("<commande>/bin/bash</commande>"); strBuilder.append("<args>-c</args>").append("<args>XXX</args>"); strBuilder.append("</instruction>"); strBuilder.append("</jaxb:execute>"); exchange.getOut().setBody(new StreamSource(new StringReader(strBuilder.toString()))); {code} The camel exec component do its job as the target (InOnly) BC in petals. But we get this stack trace in petals.log : {code} sample-0 2015/09/29 13:31:12,361 GMT+0200 INFO [Petals.Container.Components.petals-se-camel] : Received an async answer, let's continue our execution for the exchange petals:uid:96559d40-669d-11e5-92e1-080027c8888b sample-0 2015/09/29 13:31:12,361 GMT+0200 SEVERE [Petals.Container.Components.petals-se-camel] : null java.lang.NullPointerException at org.ow2.petals.commons.log.PetalsExecutionContext.putFlowAttributes(PetalsExecutionContext.java:197) at org.ow2.petals.camel.se.CamelJBIListener.handleAsyncJBIMessage(CamelJBIListener.java:133) at org.ow2.petals.camel.se.CamelJBIListener.onAsyncJBIMessage(CamelJBIListener.java:110) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processInOnlyAsConsumer(MessageExchangeProcessor.java:586) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processAsConsumer(MessageExchangeProcessor.java:407) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.process(MessageExchangeProcessor.java:354) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.run(MessageExchangeProcessor.java:257) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) sample-0 2015/09/29 13:31:12,362 GMT+0200 INFO [Petals.Container.Components.petals-se-camel] : Received an async answer, let's continue our execution for the exchange petals:uid:965c7b10-669d-11e5-92e1-080027c8888b sample-0 2015/09/29 13:31:12,363 GMT+0200 SEVERE [Petals.Container.Components.petals-se-camel] : null java.lang.NullPointerException at org.ow2.petals.commons.log.PetalsExecutionContext.putFlowAttributes(PetalsExecutionContext.java:197) at org.ow2.petals.camel.se.CamelJBIListener.handleAsyncJBIMessage(CamelJBIListener.java:133) at org.ow2.petals.camel.se.CamelJBIListener.onAsyncJBIMessage(CamelJBIListener.java:110) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processInOnlyAsConsumer(MessageExchangeProcessor.java:586) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.processAsConsumer(MessageExchangeProcessor.java:407) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.process(MessageExchangeProcessor.java:354) at org.ow2.petals.component.framework.process.MessageExchangeProcessor.run(MessageExchangeProcessor.java:257) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) sample-0 2015/09/29 13:31:12,378 GMT+0200 MONIT [Petals.Container.Components.petals-se-camel] : traceCode = 'consumeFlowStepEnd', flowInstanceId = null, flowStepId = null sample-0 2015/09/29 13:31:12,379 GMT+0200 MONIT [Petals.Container.Components.petals-se-camel] : traceCode = 'consumeFlowStepEnd', flowInstanceId = null, flowStepId = null {code} and no monitoring trace were logged. If we force synchronous execution with "to("petals://executeSatinMassCommands?synchronous=true"); there's no more stack trace, all route is run but no monit log are write too. |
| Status | In Progress [ 10003 ] | Resolved [ 10004 ] |
| Fix Version/s | 0.5.1 [ 10559 ] | |
| Resolution | Fixed [ 1 ] |
| Link | This issue depends on PETALSSECAMEL-9 [ PETALSSECAMEL-9 ] |
| Attachment | petals_finest.log [ 10782 ] |