Bug 780337 (SOA-2745)

Summary: Router in Smooks Creates Inverse Persistence
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: Brad Davis <brad.davis>
Component: 3rd PartyAssignee: Tom Fennelly <tom.fennelly>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 5.0.2CC: kevin.conner
Target Milestone: ---   
Target Release: 5.2.0 GA, 5.2.0.ER5   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-2745
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-11-04 11:43:58 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Brad Davis 2011-01-05 19:40:10 UTC
Workaround: Workaround Exists
Workaround Description: The work around is to use:

   <jms:router routeOnElement="student" beanId="studentFragment" destination="queue/StudentRecordQueue">
   		<jms:message deliveryMode="non-persistent"/>
   </jms:router>

When you would actually like persistent messages.
project_key: SOA

Smooks' JMS Router configures message persistence incorrectly.  The documentation suggests the following configuration will result in persistent messages to the ESB:

   <jms:router routeOnElement="student" beanId="studentFragment" destination="queue/StudentRecordQueue">
   		<jms:message deliveryMode="persistent"/>
   </jms:router>

Instead, this leads to non-persistent messages.  This is due to a bug in org.milyn.routing.jms.JMSRouter:

 final int deliveryModeInt = "non-persistent".equals( jmsProperties.getDeliveryMode() ) ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT;

This should instead be the inverse:

 final int deliveryModeInt = "non-persistent".equals( jmsProperties.getDeliveryMode() ) ? DeliveryMode.NON_PERSISTENT : DeliveryMode.PERSISTENT;


This is a particularly major bug because the work around will cause incorrect functionality in future versions of the ESB, which will hopefully fix the issue with a patched version of Smooks' JMS Cartridge.

Comment 1 Kevin Conner 2011-01-06 10:13:11 UTC
It looks like this issue is still present in the version included in 5.1 ER6

Comment 2 tcunning 2011-07-27 21:12:36 UTC
Link: Added: This issue relates to JBESB-3648


Comment 3 David Le Sage 2011-09-27 03:41:07 UTC
Release Notes Docs Status: Added: Documented as Resolved Issue
Writer: Added: dlesage
Release Notes Text: Added: https://issues.jboss.org/browse/SOA-2745


The Smooks router was setting messages as non-persistent when, in fact, it should have been making them persistent. This was due to a bug in the router's code which has now been rectified  As a result, messages are now set as persistent.



Comment 4 Martin Vecera 2011-11-04 11:43:58 UTC
Verified with ER6