You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Freeman Fang (JIRA)" <ji...@apache.org> on 2013/09/16 04:45:52 UTC

[jira] [Moved] (SMXCOMP-973) Servicemix-drools - exchange submited two times, second raise error in logs

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

Freeman Fang moved SM-2215 to SMXCOMP-973:
------------------------------------------

          Component/s:     (was: servicemix-drools)
                       servicemix-drools
    Affects Version/s:     (was: archetypes-2013.01)
                  Key: SMXCOMP-973  (was: SM-2215)
              Project: ServiceMix Components  (was: ServiceMix)
    
> Servicemix-drools - exchange submited two times, second raise error in logs
> ---------------------------------------------------------------------------
>
>                 Key: SMXCOMP-973
>                 URL: https://issues.apache.org/jira/browse/SMXCOMP-973
>             Project: ServiceMix Components
>          Issue Type: Bug
>          Components: servicemix-drools
>         Environment: Servicemix 3.3.2/3.4.1 in WAR mode in Tomcat 6, JRE 6 / x64 on Windows
>            Reporter: Erwan Guiochet
>            Assignee: Freeman Fang
>            Priority: Minor
>         Attachments: JbiHelper.java
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> Related to this topic : http://servicemix.396122.n5.nabble.com/Servicemix-3-3-2-drools-2010-01-Received-exchange-problem-td3325976.html
> Stacktrace : http://servicemix.396122.n5.nabble.com/file/n3326715/Drools.log
> A message is normally submitted two times to drools component:
> - first as Active
> - second as Done
> A filter exist in DroolsEndPoint.handleProviderExchange in order to process only Active message but not enough in my case.
> In my case the first pass was processed correctly the exchange then and in DroolsEndPoint.handleProviderExchange the second pass was still Active not DONE... then it fire the rule and when it arrive in jbiHelper.answer the exchange was passed to DONE, so when it try to set the OUT message it failed.
> Solution is to add the same filter in jbiHelper.answer as it was done in DroolsEndPoint.handleProviderExchange like this :
> public void answer(Source content) throws Exception {         
>         MessageExchange me = this.exchange.getInternalExchange();               
>         if (me.getStatus() == ExchangeStatus.ACTIVE) 
>         { 
>           ...
>         }
> }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira