Repository navigation
Bug #45 - Reflective access with CGLIB breaks windowbuilder in java 16 - #55
Conversation
0243f6c to
b08e934
Compare
|
Have you tried this with Java 17? I ask because in the Java 17 installation I have According to https://blogs.oracle.com/javamagazine/post/a-peek-into-java-17-continuing-the-drive-to-encapsulate-the-java-runtime-internals that option was removed and it points to https://openjdk.java.net/jeps/403 for reference. |
|
Hi ed Yes I have tested with JDK 17. The previous bugfix consisted in adding this "illegal-access" parameter to the vm arguments of Eclipse, and this argument is no longer used in Java 17. In this PR i used a "hack" that allows all modules to access all modules (using the library Burningwave) |
|
Ah, that sounds horrible but good. That being said, did you file a CQ for the use of this library? |
|
Heu no... can you tell me how to do this request ? |
|
@vogella Please help Laurent with the processes around dependencies on third party libraries... |
|
And note that I must confess that the processes have changed over the years and I'm not really sure exactly the details of the latest incantation. https://www.eclipse.org/projects/handbook/#ip |
|
@merks I'm not a good adviser for process steps, as I rarely involved in these and dislike these steps. IIRC the foundation was planning to get rid of CQ? Anyway, @lcaron IIRC you have to open a CQ on https://dev.eclipse.org/ipzilla/ asking if a library can be used. You would upload the lib and the foundation ask an external company to run a security and IP check on it. If everything is fine, you get the right to use it. |
|
Great thanks to @lcaron for working on this. |
|
Thank you @vogella I'm gonna do it today |
I tried first to replace cglib by bytebuddy, and it is very very tricky, long and it could be a bug nest.
This PR is based on new approach, a trick to bypass module security (same trick in JDK 16 with the
--illegal-access=permitargument). I found the solution at [1]I use burningwave library [2] and the following snippet [3]
[1] = cglib/cglib#191
[2] = https://github.com/burningwave/core
[3] = https://github.com/JJBRT/advanced-java-tutorials/blob/master/reflection/src/main/java/com/github/jjbrt/reflection/AllModulesToAllModulesExporter.java