[ https://issues.apache.org/jira/browse/OFBIZ-12721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17653589#comment-17653589 ]
Daniel Watford commented on OFBIZ-12721: ---------------------------------------- Hi [~jleroux] , I'm happy to use whatever approach to Jira tickets you see as appropriate. I didn't notice that this was already a sub-task. The reason I thought we might want to use two separate tickets was to have the workaround ticket set with a fix-version of release 22, whereas the strategic fix would have fix-version of trunk. Then when a release manager reviews the outstanding tickets for release 22, they would have quickly seen that this particular piece of work was complete. If we keep the ticket open, then the release manager would need to read through the ticket details to determine whether the ticket was blocking the release or not. > Replace all occurrences of java.util.TimeZone by java.time.ZoneId > ----------------------------------------------------------------- > > Key: OFBIZ-12721 > URL: https://issues.apache.org/jira/browse/OFBIZ-12721 > Project: OFBiz > Issue Type: Sub-task > Components: ALL COMPONENTS > Affects Versions: Upcoming Branch > Environment: Java 17 > Reporter: Jacques Le Roux > Assignee: Ioan Eugen Stan > Priority: Major > > Using JDK 17, we have this issue: > {noformat} > 2022-12-06 19:04:30,689 |sse-nio-8443-exec-10 |FreeMarkerWorker > |E| null > freemarker.core._TemplateModelException: Java method > "sun.util.calendar.ZoneInfo.useDaylightTime()" threw an exception when > invoked on sun.util.calendar.ZoneInfo object > "sun.util.calendar.ZoneInfo[id=\"Europe/Paris\",offset=3600000,dstSa > vings=3600000,useDaylight=true,transitions=184,lastRule=java.util.SimpleTimeZone[id=Europe/Paris,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,start > TimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]]"; > see cause exception in the Java stack trace. > ---- > FTL stack trace ("~" means nesting-related): > - Failed at: ${timeZone.getDisplayName(timeZone.us... [in template > "component://helveticus/template/includes/Footer.ftl" at line 21, column 98] > ---- > at > freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException(_MethodUtil.java:292) > ~[freemarker-2.3.31.jar:2.3.31] > [...] > Caused by: java.lang.IllegalAccessException: class > freemarker.ext.beans.BeansWrapper cannot access class > sun.util.calendar.ZoneInfo (in module java.base) because module java.base > does not export sun.util.calendar to unnamed module @1c852c0f > at > jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392) > ~[?:?] > at > java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674) > ~[?:?] > at java.lang.reflect.Method.invoke(Method.java:560) ~[?:?] > at > freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1552) > ~[freemarker-2.3.31.jar:2.3.31] > at > freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:73) > ~[freemarker-2.3.31.jar:2.3.31] > ... 85 more > {noformat} > [The var timeZone is accessible in screen > context|https://cwiki.apache.org/confluence/display/OFBIZ/Variables+always+available+in+screen+context]. > The java.util.TimeZone class uses sun.util.calendar.ZoneInfo internally. > It's no longer supported by Java 17. We need to replace all occurrences of > java.util.TimeZone by java.time.ZoneId. > An easy temporary solution is to set > {{--add-exports=java.base/sun.util.calendar=ALL-UNNAMED}} in build.gradle: > : > ['-Xms128M','-Xmx1024M','-Djdk.serialFilter=maxarray=100000;maxdepth=20;maxrefs=1000;maxbytes=500000','--add-exports=java.base/sun.util.calendar=ALL-UNNAMED'] > It has no impact with JDK 11. -- This message was sent by Atlassian Jira (v8.20.10#820010)