<Beans Dev> [9] Review Request: 8146313 The java.beans.Statement.invoke() method handles 3-arg Class.forName incorrectly

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Fri Apr 22 16:20:16 UTC 2016

Please review the fix for jdk9(the fix was discussed offline already).

The Statement class can execute the methods and pass some parameters for 
them. It can be used to store the statement(method call+parameter) in 
xml and load it when necessary. This class has special case for 
Class.forName() because it provides some additional features(for example 
it uses a different class loaders and supports primitive types). But it 
does not take into account that there is the second 3-args forName() 
method. It was fixed in the change.

3-args forName() method is considered as a usual method which will be 
executed for provided class+classloadder. The additional check for 
package access is added. Note that I added a code to always clone the 
list of arguments just as an additional safeness for the future changes.

Bug: https://bugs.openjdk.java.net/browse/JDK-8146313
Webrev can be found at: http://cr.openjdk.java.net/~serb/8146313/webrev.03

Best regards, Sergey.

More information about the beans-dev mailing list