Bug 976294 - regression: using a ResourceAdaptor (rar) which has properties that use primitives as arguments will fail to deploy
regression: using a ResourceAdaptor (rar) which has properties that use primi...
Status: CLOSED CURRENTRELEASE
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: JCA (Show other bugs)
6.1.0
Unspecified Unspecified
unspecified Severity high
: ER4
: EAP 6.1.1
Assigned To: Tom Fonteyne
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-06-20 06:05 EDT by Tom Fonteyne
Modified: 2013-09-16 16:27 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
In previous versions of JBoss EAP 6 there was an issue when using a resource adapter that had properties which used primitive data types as arguments. This issue would cause the resource adapter to fail to deploy, with the log file containing messages relating to the attributes of the resource adapter not being set. In this version of JBoss EAP 6, this issue has been fixed by using data type introspection to check the attributes, including primitive data types. Resource adapters should no longer fail to deploy as a result of having primitive data types as arguments.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-09-16 16:27:32 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
JBoss Issue Tracker WFLY-1517 Major Resolved regression: using a ResourceAdaptor (rar) which has properties that use primitives as arguments will fail to deploy 2016-11-02 02:48 EDT

  None (edit)
Description Tom Fonteyne 2013-06-20 06:05:26 EDT
org.jboss.as.connector.util.Injection.java:159

protected Method findMethod(Class<?> clz, String methodName, String propertyType) {
while (!clz.equals(Object.class)) {
List<Method> hits = null;
Method[] methods = clz.getDeclaredMethods();
for (int i = 0; i < methods.length; i++) {
Method method = methods[i];
if (methodName.equals(method.getName()) && method.getParameterTypes().length == 1) {
if (propertyType == null || propertyType.equals(method.getParameterTypes()[0].getName())) {

the above is not taking primitives into account.
Example, the IBM IMS connector ims1132.rar has:

<config-property>
<config-property-name>enableHASupport</config-property-name>
<config-property-type>java.lang.Boolean</config-property-type>
<config-property-value>true</config-property-value>
</config-property>

and the method:

public void setEnableHASupport(boolean isHAEnabled)

Our "FindMethod" will find this method but will fail to select it as it compares "java.lang.Boolean" with "boolean"
Comment 1 Tom Fonteyne 2013-06-20 06:32:01 EDT
this BZ raised to backport WFLY-1517 to EAP 6.x upstream
Comment 2 Tom Fonteyne 2013-06-20 07:02:38 EDT
pull request send:

https://github.com/jbossas/jboss-eap/pull/190
Comment 3 Tom Fonteyne 2013-06-21 10:47:27 EDT
New pull request send to 6.1.x branch as instructed by Carlo

https://github.com/jbossas/jboss-eap/pull/194
Comment 4 Vladimir Rastseluev 2013-08-01 02:37:19 EDT
Verified on EAP 6.1.1.ER4

Note You need to log in before you can comment on or make changes to this bug.