SwitchPredicate for EIP MessageFilter does not work properly when switch is set 
on the message exchange.
--------------------------------------------------------------------------------------------------------

                 Key: SMXCOMP-553
                 URL: https://issues.apache.org/activemq/browse/SMXCOMP-553
             Project: ServiceMix Components
          Issue Type: Bug
          Components: servicemix-eip
         Environment: Windows XP SP 2 with Sun JVM 1.5.0.17
            Reporter: Jean Jacobs
            Priority: Minor


While creating unit tests for the servicemix-eip component, I was testing the 
SwitchPredicate when the property that turns on/off the message flow is set on 
the message exchange.  It appears that the property is not getting picked up 
properly.  I set the property on the exchange as follows:

me.setProperty("on", Boolean.TRUE);

In the MessageFilter.java processAsync() method, it copies the message 
exchange's "in" message to a new message exchange, the property gets lost.  It 
was set on the exchange itself not on the exchange's "in" message.

I tried setting the exchange's "in" message property as follows:

me.getInMessage().setProperty("on", Boolean.TRUE);

The property gets transferred to the new exchange's "in" message, but the code 
in SwitchPredicate.java's matches() method is looking for the property on the 
exchange not its "in" message.

The property is set to False by default. I will submit a test that shows the 
problem.

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