Details
-
Bug
-
Status: In Progress
-
Major
-
Resolution: Unresolved
-
3.4.2
-
None
-
None
-
Unknown
Description
JEP-396 introduces stronger encapsulation of JDK internals by default. In CXF, we are using a number of tricks to access JDK internals, including but not limited to:
AutomaticWorkQueueImpl uses private ThreadPoolExecutor::addWorker: needs --add-opens java.base/java.util.concurrent=ALL-UNNAMEDEasyMock: needs --add-opens java.base/java.lang=ALL-UNNAMED(fixed in EasyMock 5.0.1 by moving off to ByteBuddy)- CgLib (Spring AOP): needs --add-opens java.base/java.lang=ALL-UNNAMED
Caused by: org.springframework.cglib.core.CodeGenerationException: java.lang.reflect.InaccessibleObjectException-->Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @1e67b872 at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:549)
ImportRepairTest uses XSImplementationImpl: --add-exports java.xml/com.sun.org.apache.xerces.internal.impl.xs=ALL-UNNAMED --add-exports java.xml/com.sun.org.apache.xerces.internal.impl.xs.util=ALL-UNNAMEDReferencingAuthenticator (method tryWith): needs --add-opens java.base/java.net=ALL-UNNAMEDstax.WriterTest: needsadd-opens java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMEDjohnzon-jsonb: needs --add-opens java.base/java.util=ALL-UNNAMEDSOAPRpcLitClientTypeTest with xercesImpl: needs --add-opens java.xml/javax.xml.namespace=ALL-UNNAMED (see please https://github.com/javaee/jaxb-v2/issues/1184)- .
JAXRSLDAPUserTest: (fixed byCXF-8809)
-apacheds needs --add-opens java.base/sun.security.x509=ALL-UNNAMED {}add-opens java.base/sun.security.util=ALL-UNNAMED
-org.springframework.ldap needs -add-opens java.naming/com.sun.jndi.ldap=ALL-UNNAMED(fixed in 2.3.4.RELEASE) JsFrontEndServletTest & JSClientServerTest: need --add-opens java.xml/com.sun.org.apache.xerces.internal.dom=ALL-UNNAMED (saaj-impl 1.5.3 SOAPDocumentImpl::createDocument() instantiates `com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl`)- JAXRSClientServerBookTest & JAXRSHttpsBookTest: need --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/sun.net.www.protocol.https=ALL-UNNAMED (setting custom HTTP method fe RETRIEVE in URLConnectionHTTPConduit::setupConnection using reflection)
We should migrate from using those to the means provided by standard library.
[1] https://openjdk.java.net/jeps/396
[2] https://cr.openjdk.java.net/~mr/jigsaw/jdk8-packages-denied-by-default
Attachments
Attachments
Issue Links
1.
|
Get rid of Powermock usage | Closed | Andriy Redko |