WrenSecurity/wrenidm

Groovy connector needs access to java internals

krystofNovotny opened this issue · 0 comments

Groovy connector tries to access class not available in JDK 11.

Workaround:
To config.properties add:
org.osgi.framework.bootdelegation=sun.*,com.sun.*,com.sun,apple.*,com.apple.*,javax.net.ssl,jdk.internal.reflect

Error message:

wrenidm    | -> ShellTUI: No standard input...exiting.
wrenidm    | OpenIDM version "6.0.0-SNAPSHOT" (revision: c36a456) forgerock/master-2016 master
wrenidm    | WARNING: An illegal reflective access operation has occurred
wrenidm    | WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass$3$1 (file:/opt/wrenidm/bundle/groovy-all-2.4.7.jar) to method java.util.concurrent.ConcurrentMap.lambda$replaceAll$0(java.util.function.BiFunction,java.lang.Object,java.lang.Object)
wrenidm    | WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass$3$1
wrenidm    | WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
wrenidm    | WARNING: All illegal access operations will be denied in a future release
wrenidm    | Aug 11, 2021 12:05:05 PM org.forgerock.openidm.logging.LogServiceTracker logEntry
wrenidm    | SEVERE: Bundle: org.forgerock.openidm.provisioner-openicf [197] bundle org.forgerock.openidm.provisioner-openicf:6.0.0.SNAPSHOT (197)[org.forgerock.openidm.provisioner.openicf.impl.OpenICFProvisionerService(49)] : The activate method has thrown an exception
wrenidm    | org.apache.felix.log.LogException: java.lang.NoClassDefFoundError: jdk/internal/reflect/MethodAccessorImpl
wrenidm    | 	at java.base/jdk.internal.misc.Unsafe.defineClass0(Native Method)
wrenidm    | 	at java.base/jdk.internal.misc.Unsafe.defineClass(Unsafe.java:1192)
wrenidm    | 	at java.base/jdk.internal.reflect.ClassDefiner.defineClass(ClassDefiner.java:63)
wrenidm    | 	at java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400)
wrenidm    | 	at java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394)
wrenidm    | 	at java.base/java.security.AccessController.doPrivileged(Native Method)
wrenidm    | 	at java.base/jdk.internal.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393)
wrenidm    | 	at java.base/jdk.internal.reflect.MethodAccessorGenerator.generateMethod(MethodAccessorGenerator.java:75)
wrenidm    | 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:53)
wrenidm    | 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
wrenidm    | 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
wrenidm    | 	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
wrenidm    | 	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
wrenidm    | 	at org.codehaus.groovy.runtime.metaclass.MethodMetaProperty$GetBeanMethodMetaProperty.getProperty(MethodMetaProperty.java:76)
wrenidm    | 	at org.codehaus.groovy.runtime.callsite.GetEffectivePogoPropertySite.callGetProperty(GetEffectivePogoPropertySite.java:48)
wrenidm    | 	at SqlObjectConfig.forObjectClass(SqlObjectConfig.groovy:51)
wrenidm    | 	at SqlObjectConfig$forObjectClass.call(Unknown Source)
wrenidm    | 	at SqlTestScript$_run_closure1.doCall(SqlTestScript.groovy:20)
wrenidm    | 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
wrenidm    | 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)