0

This exception occurs after java migration to OpenJDK Runtime Environment Temurin-17.0.3+7 build 17.0.3+7

I have try to add add those JVM OPTIONS but not help

JVM_OPTIONS="$JVM_OPTIONS --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.base=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/sun.util=ALL-UNNAMED"

Exception

2022-09-09 16:05:46,132 [ERROR] [pool-48-thread-5] : cannot close object
java.lang.reflect.InaccessibleObjectException: Unable to make field int sun.util.calendar.BaseCalendar$Date.cachedYear accessible: module java.base does not "opens sun.util.calendar" to unnamed module @35fc6dc4
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
    at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
    at com.rits.cloning.Cloner.addAll(Cloner.java:561)
    at com.rits.cloning.Cloner.allFields(Cloner.java:578)
    at com.rits.cloning.Cloner.cloneObject(Cloner.java:463)
    at com.rits.cloning.Cloner.cloneInternal(Cloner.java:454)
    at com.rits.cloning.Cloner.applyCloningStrategy(Cloner.java:488)
    at com.rits.cloning.Cloner.cloneObject(Cloner.java:471)
    at com.rits.cloning.Cloner.cloneInternal(Cloner.java:454)
    at com.rits.cloning.Cloner.applyCloningStrategy(Cloner.java:488)
    at com.rits.cloning.Cloner.cloneObject(Cloner.java:471)
    at com.rits.cloning.Cloner.cloneInternal(Cloner.java:454)
    at com.rits.cloning.Cloner$1.deepClone(Cloner.java:121)
    at com.rits.cloning.FastClonerArrayList.clone(FastClonerArrayList.java:19)
    at com.rits.cloning.Cloner.fastClone(Cloner.java:132)
    at com.rits.cloning.Cloner.cloneInternal(Cloner.java:439)
    at com.rits.cloning.Cloner.deepClone(Cloner.java:324)

any idea ?

RAITON
  • 325
  • 2
  • 13
  • 2
    add `sun.util.calendar`, `add-opens` packages don't cascade – Taylor Sep 09 '22 at 14:19
  • 5
    Yea ... but why is the code using depending on `sun.util.calendar.BaseCalendar$Date`. Is it your code? A 3rd party library? – Stephen C Sep 09 '22 at 15:16
  • This is come from 3rd party library, this is the output of mvn dependency:tree ----> [INFO] +- uk.com.robust-it:cloning:jar:1.9.10:compile – RAITON Sep 09 '22 at 15:37
  • 4
    @StephenC is driving at a good point. Depending on how your code is run, using `add-opens` can be risky. You're essentially turning off security features of the jvm. This can be higher risk if your code is running in an environment you do not control, e.g. a user's system. Just calling out for awareness, and thank you StephenC for raising. – Taylor Sep 09 '22 at 15:39
  • agree, my code is running inside container in private cloud, but for sure this is not recommended, I will remove this when this fixed in cloning api --> https://github.com/kostaskougios/cloning/issues/118 – RAITON Sep 09 '22 at 15:42
  • 2
    The problem obviously is the `com.rits.cloning.Cloner` *in general*. It looks like a software designed to recursively copy objects using deep Reflection, without any understanding of those objects. This can break in so many way and is horribly inefficient at the same time. – Holger Sep 13 '22 at 08:21

0 Answers0