On 27.04.16 10:12, Semyon Sadetsky wrote:
Yes it does not work for primitives, it not treated as some special
method(like 1-args), it call 3-args Class.forName(which do not support
the primitives) directly like any other methods.
What will happen if the 3-args is called with a primitive?
Same as Class.forName(): "java.lang.ClassNotFoundException: int"
On 4/22/2016 7:20 PM, Sergey Bylokhov wrote:
Hello.
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.