Open zedaster opened 6 years ago
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 defineClass
(MethodHandles.Lookup.defineClass).
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 ClassLoader.defineClass
with MethodHandles.Lookup.defineClass
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?
I tried to implement the suggestion of using MethodHandles.lookup().defineClass()
instead of ClassLoader.defineClass()
, but only got as far as https://github.com/robinverduijn/reflectasm/compare/fix-code-warnings...robinverduijn:fix-illegal-reflective-access. It left me with the warning gone but two tests failing. At that point I got stuck, but maybe someone else can figure out how to make it work from there?
try this:
// suppress "An illegal reflective access operation has occurred" in JDK9+ if (!System.getProperty("java.version").startsWith("1.") && !MethodAccess.class.getModule().isNamed()) Class.class.getModule().addOpens(Class.class.getPackageName(), MethodAccess.class.getModule());
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)? 🙏