-
Notifications
You must be signed in to change notification settings - Fork 222
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Warnings with Java 9 #64
Comments
Some of my users are also seeing this. See rarcher/couch-potato-server#27 for a discussion. |
An option might be to create a multi release jar (aka MRJAR) and use a different way for Java 9+ to |
Any update? |
Can ignore or disable the warning. |
@NathanSweet Obviously. But can't the underlying problem be fixed? |
I'm not sure, I haven't looked into it. It's not a problem yet though, it's just a warning. It won't be a problem until they disallow what the library needs to function. At that time we either fix it or the library won't work on the latest JVMs. That is the case for a great many libraries. |
@NathanSweet For what it's worth, @magro explained how to fix this problem. Simply replace |
If that works, great! I just haven't had the time or personal need to dig into it. |
Any news on this? |
I'm running into this too, any idea of when a fix may be available. |
Just FYI: still the same warning with java 13 |
Sorry I'm too busy with other things, but maybe someone could come up with a PR for multi-release jar? |
Try to use MethodHandles.lookup().defineClass() instead of ClassLoader.defineClass(), as suggested on EsotericSoftware#64 This will get rid of the following warnings: ``` WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.esotericsoftware.reflectasm.AccessClassLoader (file:/.m2/repository/com/esotericsoftware/reflectasm/1.11.7/reflectasm-1.11.7.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) WARNING: Please consider reporting this to the maintainers of com.esotericsoftware.reflectasm.AccessClassLoader WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release ``` Although as it is, these changes break some of the unit tests, with failures like the following: ``` java.lang.LinkageError: loader 'app' attempted duplicate class definition for com.esotericsoftware.reflectasm.ClassLoaderTest$Test. (com.esotericsoftware.reflectasm.ClassLoaderTest$Test is in unnamed module of loader 'app') at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.System$2.defineClass(System.java:2126) at java.base/java.lang.invoke.MethodHandles$Lookup.defineClass(MethodHandles.java:962) at com.esotericsoftware.reflectasm.ClassLoaderTest$TestClassLoader1.loadClass(ClassLoaderTest.java:162) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at com.esotericsoftware.reflectasm.ClassLoaderTest.testRemoveClassloaders(ClassLoaderTest.java:99) ```
I tried to implement the suggestion of using |
try this:
|
In a similar vein to EsotericSoftware/kryo#626, could you support a System property (-Dreflectasm.unsafe=false) or something so that we can stop this error message from appearing (and ideally start to get ready for when illegal access is removed)? 🙏 |
The text was updated successfully, but these errors were encountered: