I have filed a bug for the described case below under Report a Bug or Request a Feature and also got a confirmation email that the bug has been accepted with Bug Id: 9007101 but if i search for this bug under Bug Database it is no found. What happens to These bug reports? Are they just thrown away? Is there another way to report a bug?
A fix for this bug is very important for us and the only workaround is to prepend a jar with a fix to the boot class path. I know that this is not allowed on production systems because of license agreement but we have no other choice.
Case: Wrong property type after GC clears method refs
1. Given a base class A or an Interface with a generic Parameter <P> and a getter and setter method for an Attribute of type P.
2. Given a derived class B extends A<AnyType> with a getter and setter method for AnyType which override the corresponding methods from the super class.
After the the method references in the property descriptor have been cleared (by gc normally) and you retrive the property type once more the type is determined wrong.
The following method list is a part of the result of B.class.getMethods()
- Method: public java.lang.Object B.getFoo(); isSyntetic=true - Method: public java.lang.String B.getFoo(); isSyntetic=false - Method: public void B.setFoo(java.lang.Object); isSyntetic=true - Method: public void B.setFoo(java.lang.String); isSyntetic=false
Unfortunately the method "getPublicDeclaredMethods" of class Introspector does not filter out all the Abstract and synthetic methods and because the method "internalFindMethod" of class Introspector now takes the first getter method it uses "public java.lang.Object B.getFoo()" to determine the property type which is wrong!