[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17493906#comment-17493906 ] Robert Munteanu commented on SLING-10831: - I wonder if we could simply hand out new threads each time, maybe behind a configuration flag. This would definitely have no correctness implications, but on the other hand performance may be negatively impacted. > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17493902#comment-17493902 ] Carsten Ziegeler commented on SLING-10831: -- I think the problem with leftover thread locals is not necessary memory - but out of the sudden one request has access to objects of another request which can lead to all kinds of problems > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17493900#comment-17493900 ] Robert Munteanu commented on SLING-10831: - [~olli] - yes, if they are dropping threads that does not help. But maybe it would help if we dropped threads after a number of executions and/or set time? This way any leftover thread locals would be dropped, just at a slower pace (and potentially too late to prevent an OOME ). > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17493894#comment-17493894 ] Oliver Lietz commented on SLING-10831: -- [~rombert], The goal of Tomcat's memory leak protection is AFAIU to free memory but we are trying also to mitigate bad user code (keeping data private). I haven't checked the Tomcat code but from the comments (from a decade ago) I understand they are dropping threads or even the whole thread pool which does not help in our case. > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17493859#comment-17493859 ] Robert Munteanu commented on SLING-10831: - [~olli] - perhaps someone can investigate what Tomcat is doing - https://cwiki.apache.org/confluence/display/tomcat/MemoryLeakProtection . Not sure if their stuff works without {{--add-opens}}. > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17493466#comment-17493466 ] Oliver Lietz commented on SLING-10831: -- [~rombert], Fine so far. But we should have a strategy how to support JPMS in the future. > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17493354#comment-17493354 ] Robert Munteanu commented on SLING-10831: - [~cziegeler] - I filed SLING-11149 for the logging part. [~olli] - I see you filed issues for the improvements that you propose, so I guess nothing left to clarify here. > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17493240#comment-17493240 ] Carsten Ziegeler commented on SLING-10831: -- I agree that this is a last resort for bad code; however if developers really rely on it, not having this clean up will cause trouble. Can we add a error log message each time this code does actually a clean up, so clients are aware of it and eventually fix their code? > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17493239#comment-17493239 ] Oliver Lietz commented on SLING-10831: -- [~rombert], I checked the code again, everything is already in place. We just have to fix the tests for Java 17. > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17492597#comment-17492597 ] Robert Munteanu commented on SLING-10831: - [~olli]- all things being equal, I'd prefer that we have this feature in. But if that is not possible, we'll have to drop and document it, of course. > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17492596#comment-17492596 ] Oliver Lietz commented on SLING-10831: -- [~royteeuwen], The cleanup in Commons Threads is IMHO only a measure of last resort. Removing ThreadLocals must happen in application code (therefore I'm happy to drop the feature on unsupported runtimes with a big warning in documentation and logs). [~rombert], I'm pretty sure it will not work on module path. Here the JPMS rules should be enforced. > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17492554#comment-17492554 ] Robert Munteanu commented on SLING-10831: - I think that for now we are safe with {{--add-opens}} and the current Java versions. I am not sure whether the option will actually go away at some point. ISTR that [~kpauls] said at some point that if we were to run on the module path via OSGi Connect/Felix Atomos this kind of problem would be solved. But I might be wrong as I don't know all that much about the problem. > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17492529#comment-17492529 ] Roy Teeuwen commented on SLING-10831: - Indeed, I can definitely vouch for that ThreadLocal's in applications I worked on using Sling did not clean themselves up, because we knew this cleaning was happening by this service. So it would be a big attention point if we had to now start doing that ourselves (and some refactorings of course) > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17492522#comment-17492522 ] Robert Munteanu commented on SLING-10831: - The problem was in application code. I don't think we have those leaks, but sometimes users do. And yes, it was tampering with internals, but at the moment I don't see an alternative. > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17492521#comment-17492521 ] Oliver Lietz commented on SLING-10831: -- The JPMS should prevent exactly what we are doing in the cleaner – tampering around with internals. And it's the {{java.base}} module which we don't even own. What was the original use case? Preventing memory leaks or "fixing" bad user/application code? > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17492501#comment-17492501 ] Robert Munteanu commented on SLING-10831: - [~olli] - I think we should fix it, but I am not sure if it's possible. Users can manually add an {{--add-opens}} flag ( see SLING-11143 ) but that's not ideal. > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)
[jira] [Commented] (SLING-10831) o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17
[ https://issues.apache.org/jira/browse/SLING-10831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17492494#comment-17492494 ] Oliver Lietz commented on SLING-10831: -- [~rombert], Any plans to fix? Are we fine with just failing gracefully, dropping ThreadLocal cleanup on unsupported runtimes? > o.a.s.commons.thread fails setting up ThreadLocal cleaner on Java 17 > > > Key: SLING-10831 > URL: https://issues.apache.org/jira/browse/SLING-10831 > Project: Sling > Issue Type: Bug > Components: Commons >Reporter: Robert Munteanu >Priority: Major > Fix For: Commons Threads 3.3.0 > > > When running the Sling Starter with Java 17, the following messages come up: > {noformat}21.09.2021 11:13:54.247 *WARN* [sling-default-1] > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals > Could not set up thread local cleaner (most probably not a compliant JRE): {} > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > 21.09.2021 11:13:54.248 *ERROR* [sling-default-1] > org.apache.sling.extensions.threaddump.internal.Activator Uncaught exception > in Thread Thread[sling-default-1,5,main] > java.lang.ExceptionInInitializerError: null > at > org.apache.sling.commons.threads.impl.ThreadPoolExecutorCleaningThreadLocals.beforeExecute(ThreadPoolExecutorCleaningThreadLocals.java:58) > [org.apache.sling.commons.threads:3.2.20] > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > field java.lang.ThreadLocal$ThreadLocalMap java.lang.Thread.threadLocals > accessible: module java.base does not "opens java.lang" to unnamed module > @6e04bc96 > 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 > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.field(ThreadLocalCleaner.java:77) > [org.apache.sling.commons.threads:3.2.20] > at > org.apache.sling.commons.threads.impl.ThreadLocalCleaner.(ThreadLocalCleaner.java:54) > [org.apache.sling.commons.threads:3.2.20] > ... 4 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.20.1#820001)