Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.2.1
-
None
Description
WHAT:
When running on Java9+, module encapsulation shields classes from usage even through reflection. The introspector is unfortunately not aware of this leading to unexpected runtime errors.
Error looks like this:
<code>
class org.apache.commons.jexl3.internal.introspection.MethodExecutor cannot access class sun.net.www.protocol.https.HttpsURLConnectionImpl (in module java.base) because module java.base does not export sun.net.www.protocol.https to unnamed module @1e5c7dc
</code>
HOW:
Through reflection (since we are compiling/releasing on Java8), add a check before introspection in the ClassMap.