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

Greg Lucas closed SMXCOMP-682.
------------------------------

    Resolution: Working as Designed

This is only an issue with the rules file for the loan-broker example. Drools 
will fire all the rules, so the LHS of each rule needs an additional condition 
to check if the exchange has already been handled. 

> Drools component attempts to process message twice
> --------------------------------------------------
>
>                 Key: SMXCOMP-682
>                 URL: https://issues.apache.org/activemq/browse/SMXCOMP-682
>             Project: ServiceMix Components
>          Issue Type: Bug
>          Components: servicemix-drools
>            Reporter: Greg Lucas
>
> The simple drools component in the loan-broker-bpel-example tries to process 
> the incoming message exchange twice, resulting in an exception (see below). 
> Running the example once produces the expected  result but with this error in 
> the log; running it again fails. 
> The stack trace below is from SMX 4.1 (see patch for SMX4-437 with updated 
> README for running this). On SMX 3.3 the error is different but the 
> underlying issue of the same exchange being dispatched back to the drools 
> component is the same. 
> 01:44:51,794 | ERROR | -drools-thread-3 | DroolsComponent                  | 
> icemix.common.AsyncBaseLifeCycle  480 | Error processing exchange 
> org.apache.servicemix.jbi.runtime.impl.inouti...@61e285
> org.drools.spi.ConsequenceException: javax.jbi.messaging.MessagingException: 
> Out message already set
>       at 
> org.drools.base.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:13)
>       at 
> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:558)
>       at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:518)
>       at 
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:475)
>       at 
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:439)
>       at 
> org.apache.servicemix.drools.DroolsExecutionContext.start(DroolsExecutionContext.java:77)
>       at 
> org.apache.servicemix.drools.DroolsEndpoint.startDroolsExecutionContext(DroolsEndpoint.java:319)
>       at 
> org.apache.servicemix.drools.DroolsEndpoint.drools(DroolsEndpoint.java:276)
>       at 
> org.apache.servicemix.drools.DroolsEndpoint.handleProviderExchange(DroolsEndpoint.java:259)
>       at 
> org.apache.servicemix.drools.DroolsEndpoint.process(DroolsEndpoint.java:222)
>       at 
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
>       at 
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
>       at 
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchangeInTx(AsyncBaseLifeCycle.java:478)
>       at 
> org.apache.servicemix.common.AsyncBaseLifeCycle$2.run(AsyncBaseLifeCycle.java:347)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>       at java.lang.Thread.run(Thread.java:619)
> Caused by: javax.jbi.messaging.MessagingException: Out message already set
>       at 
> org.apache.servicemix.jbi.runtime.impl.MessageExchangeImpl.setOutMessage(MessageExchangeImpl.java:188)
>       at 
> org.apache.servicemix.jbi.runtime.impl.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:152)
>       at 
> org.apache.servicemix.drools.model.JbiHelper.answer(JbiHelper.java:201)
>       at 
> org.apache.servicemix.drools.model.JbiHelper.answer(JbiHelper.java:188)
>       at 
> org.apache.servicemix.drools.Rule_CreditHistory_0.consequence(Rule_CreditHistory_0.java:7)
>       at 
> org.apache.servicemix.drools.Rule_CreditHistory_0ConsequenceInvoker.evaluate(Rule_CreditHistory_0ConsequenceInvoker.java:20)
>       at 
> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:554)
>       ... 15 more
> I've replaced the drools component with a camel component and the example 
> runs fine, so this does not seem specific to BPEL. I'll see if I can come up 
> with a simpler test case though. 

-- 
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