]
Bartosz Baranowski reassigned WFLY-10808:
-----------------------------------------
Assignee: Bartosz Baranowski
Default Value of local-receiver-pass-by-value in jboss-ejb-client
Descriptor is Not Respected
---------------------------------------------------------------------------------------------
Key: WFLY-10808
URL:
https://issues.jboss.org/browse/WFLY-10808
Project: WildFly
Issue Type: Bug
Components: EE, EJB
Affects Versions: 11.0.0.Final, 12.0.0.Final, 13.0.0.Final
Reporter: Joshua Swett
Assignee: Bartosz Baranowski
Priority: Minor
Attachments: TestWAR.war
The jboss-ejb-client.xml deployment descriptor file can be used to configure the pass
semantics of the local EJB receiver using the local-receiver-pass-by-value attribute.
As per the EJB spec, the default behaviour should be to pass by value, and this is
appropriately reflected in the jboss-ejb-client XSD. As of Wildfly 11, the *omission* of
the local-receiver-pass-by-value attribute in a jboss-ejb-client deployment descriptor
actually results in remote EJB parameters and the return value being passed by reference
as opposed to the documented default of being passed by value.
It appears that this bug is a result of changes made for WFLY-5403. The root cause is
that the EJBClientDescriptorMetaDataProcessor.java class only uses the pass-by-value
receiver if the local-receiver-pass-by-value attribute is Boolean.TRUE (line 177 in
13.0.0.Final), but EJBClientDescriptor10Parser.java defaults the value to null if it is
not included in the jboss-ejb-client.xml (line 132 in 13.0.0.Final). The old and working
behaviour was to fallback to the value configured at the ejb subsystem level if the
jboss-ejb-client.xml excluded the attribute.