Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 976294

Summary: regression: using a ResourceAdaptor (rar) which has properties that use primitives as arguments will fail to deploy
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Tom Fonteyne <tfonteyn>
Component: JCAAssignee: Tom Fonteyne <tfonteyn>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.1.0CC: cdewolf, lcosti, myarboro, rdickens, tfonteyn, vrastsel
Target Milestone: ER4   
Target Release: EAP 6.1.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
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 20:27:32 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:
Embargoed:

Description Tom Fonteyne 2013-06-20 10:05:26 UTC
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 10:32:01 UTC
this BZ raised to backport WFLY-1517 to EAP 6.x upstream

Comment 2 Tom Fonteyne 2013-06-20 11:02:38 UTC
pull request send:

https://github.com/jbossas/jboss-eap/pull/190

Comment 3 Tom Fonteyne 2013-06-21 14:47:27 UTC
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 06:37:19 UTC
Verified on EAP 6.1.1.ER4