Different Behaviour Of Introspection On IBM JRE 6 on AIX Versus SUN JRE 6 On Windows With Oracle Application Server 10.1.3.5 (Doc ID 1286054.1)

Last updated on MARCH 08, 2017

Applies to:

Oracle Containers for J2EE - Version: 10.1.3.5.0 and later   [Release: AS10gR3 and later ]
Information in this document applies to any platform.

Symptoms

When introspecting bof.TransactionVO in SUN JRE 1.6.0_19-b04 in an Oracle 10.1.3.5 application server on a windows environment (Microsoft(R) Windows(R) Server 2003 Standard x64 Edition) , the following output is obtained:


Printing PropertyDescriptors of class : bof.TransactionVO
-------------------------------------
props[i].getName(): class
props[i].getPropertyType():class java.lang.Class
props[i].getShortDescription() :class
props[i].getReadMethod(): public final native java.lang.Class java.lang.Object.getClass()
props[i].getWriteMethod(): null
IndexedPropertyDescriptor : false

props[i].getName(): transactionType
props[i].getPropertyType():class java.lang.String
props[i].getShortDescription() :transactionType
props[i].getReadMethod(): public java.lang.String bss.TransactionVO.getTransactionType()
props[i].getWriteMethod(): public void bss.TransactionVO.setTransactionType(java.lang.String)
IndexedPropertyDescriptor : false



In this output, the “readmethod” and the “propertytpe” for trasactionType property are correctly getting evaluated to getTransactionType() and java.lang.String respectively. So the application works perfectly fine in this environment.



But when introspecting bof.TransactionVO in IBM JRE 1.6 in an Oracle 10.1.3.5 application server on an AIX environment (AIX 6.1.4.0), a different output is obtained as shown below:



Printing PropertyDescriptors of class : bof.TransactionVO
-------------------------------------
props[i].getName(): class
props[i].getPropertyType():class java.lang.Class
props[i].getShortDescription() :class
props[i].getReadMethod(): public final native java.lang.Class java.lang.Object.getClass()
props[i].getWriteMethod(): null
IndexedPropertyDescriptor : false

props[i].getName(): transactionType
props[i].getPropertyType():null
props[i].getShortDescription() :transactionType
props[i].getReadMethod(): null
props[i].getWriteMethod(): null
IndexedPropertyDescriptor : true



Notice the null values present for getPropertyType(), getReadMethod(), and getWriteMethod(). Also notice that this propertyDescritpor type is showing up as an indexedPropertyDescriptor. Looks like the getter public TransactionTypeVO getTransactionType(int index) in the backoffice TrasactionVo is considered as a valid read method for the property “transactionType”.

Because of this the JXpath query to find out the value of trasactionType property fails and this is blocking the application upgrade Java 1.5 to 1.6.

The same code base is working perfectly fine in JRE 1.5 environments on both AIX and Windows on Oracle Application Server 10.1.3.3.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms