On 10/22/2019 7:13 AM, Claes Redestad wrote:
On 2019-10-22 13:05, Andrew Dinn wrote:
On 22/10/2019 12:05, Claes Redestad wrote:
On 2019-10-22 12:44, Andrew Dinn wrote:
Why not leave it void?
I guess:
http://cr.openjdk.java.net/~redestad/8232613/open.02/
Ship it ;-)
No wait, I missed the use in jni.cpp where the bool return is actually
used. I ignored it in systemDict since when I got an exception there
(by misspelling a name or using the wrong signature) the exception
bubbles up and crashes the VM.
Perhaps this could be reworked to remove the bool cleanly, but let's
go back to open.01 and move that cleanup to a follow-up.
/Claes
Hi Claes,
I do have a concern that this will be a behavioral change for method
resolution if Object::registerNatives is removed. For example,
public class RegisterNatives {
interface I { default public void registerNatives() {
System.out.println("I"); } }
static class A implements I { }
public static void main(String... args) {
A varA = new A();
varA.registerNatives();
}
Currently class A finds registerNatives in its superclass Object and the
test receives the following:
Exception in thread "main" java.lang.IllegalAccessError: class
RegisterNatives tried to access private method 'void
java.lang.Object.registerNatives()' (RegisterNatives is in unnamed
module of loader 'app'; java.lang.Object is in module java.base of
loader 'bootstrap')
at RegisterNatives.main(RegisterNatives.java:6)
With your change interface I's registerNatives default method is invoked
successfully. I don't think this is a major backward compatibilty issue
but we should have someone from core-libs okay the removal of the method
from Object before committing. In addition, can you add this test as
part of your change? I think it would be okay to put it in
open/test/hotspot/jtreg/runtime/8024804 which contains an existing
registerNatives test.
Otherwise I think .01 from the Hotspot side looks good. Only one minor
comment:
method.cpp
- line #426 and 427: Since you are in this code can your change to
resourceMark(THREAD)?
Thanks,
Lois