[JBoss JIRA] (JBESB-3941) ESB ignoring transacted flag on EPR element
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/JBESB-3941?page=com.atlassian.jira.plugin... ]
RH Bugzilla Integration commented on JBESB-3941:
------------------------------------------------
Rick Wagner <rwagner(a)redhat.com> changed the Status of [bug 980802|https://bugzilla.redhat.com/show_bug.cgi?id=980802] from NEW to ASSIGNED
> ESB ignoring transacted flag on EPR element
> -------------------------------------------
>
> Key: JBESB-3941
> URL: https://issues.jboss.org/browse/JBESB-3941
> Project: JBoss ESB
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Rosetta
> Affects Versions: 4.12
> Reporter: Tom Cunningham
> Assignee: Tom Cunningham
> Fix For: 4.11 CP3
>
>
> Description of problem:
> For example
> > <jbossesb-listeners
> > deployment="Quickstart_JMS_Transacted.esb"
> > parameterReloadSecs="5">
> > <listener
> > busIdRef="quickstartEsbChannel"
> > listenerClass="org.jboss.soa.esb.listeners.message.MessageAwareListener"
> > maxThreads="1"
> > mep="OneWay"
> > name="jmssecured"
> > service-category="JMSSecuredESB"
> > service-description="JMS Secured quickstart sample"
> > service-name="SimpleListener">
> > <EPR
> > acknowledge-mode="AUTO_ACKNOWLEDGE"
> > connection-factory="XAConnectionFactory"
> > destination-name="queue/quickstart_jms_transacted_Request_esb"
> > destination-type="queue"
> > persistent="true"
> > protocol="jms"
> > transacted="true"/>
> If you set a breakpoint on the MessageAwareListener where it retrieves the value for 'transacted', i.e. "transactional = _config.getBooleanAttribute(ListenerTagNames.TRANSACTED_TAG, false) ;", and if you then in Eclipse Debug mode analyse the 'this._config' (the ConfigTree variable), you can see that that ConfigTree does not have a 'transacted' key in its '_attributes' map. However, one of the Child ConfigTrees of this Listener tree, the 'EPR' ConfigTree, does have a 'transacted = true' value in it's tree. However, _config.getBooleanAttribute(..) does not do a recursive search through the child ConfigTrees (and it probably shouldn't, I'm not sure how this was designed), which explains why it does not return 'true'.
> > I have a proposed hack/fix that would resolve this.
> >
> > In MessageAwareListener line 169. Replace
> >
> > From
> > transactional = _config.getBooleanAttribute(ListenerTagNames.TRANSACTED_TAG, false) ;
> > To
> > transactional = _config.getChildren("EPR")[0]..getBooleanAttribute(ListenerTagNames.TRANSACTED_TAG, false) ;
--
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