John, this doesn't speak to the general question of JDK version support. But the particular stack trace you showed makes me wonder if the fix for GEODE-9081 (landed on 3/30/21 on the develop branch) might get you a little bit further. That commit 7ac9d7e4f0d04c99298067ca0611d9326e96d9cf eliminated the reflective field access in favor of some simpler down-casting.
On Wed, May 5, 2021 at 9:06 AM John Blum <jb...@vmware.com> wrote: > Hi Anthony- > > Thank you for the quick reply. > > The Spring Data Team is currently looking ahead towards Java 16 when > building and running Spring Data examples to get a sense for what works and > what doesn't, now that Java 16 is GA along with anticipation for users with > questions or problems. > > Spring Framework itself aligns and is based on LTS Java versions only, > currently Java 8 with Spring Framework 5. Spring Framework 6 will likely > move the baseline to Java 11 or possibly even Java 17, we are not sure > which yet. > > Just want to share our findings and give advanced notice. > > Thanks, > John > > ________________________________ > From: Anthony Baker <bak...@vmware.com> > Sent: Wednesday, May 5, 2021 8:14 AM > To: u...@geode.apache.org <u...@geode.apache.org> > Cc: geode <dev@geode.apache.org> > Subject: Re: JDK 16 Support? > > Thanks for reporting this John. The next LTS version of Java (17) is due > later this year. I think Geode needs to at least support every LTS version > of Java and clearly we would need to fix errors like this. Do you see a > need to support Java 16 now? > > Anthony > > > On May 5, 2021, at 7:57 AM, John Blum <jb...@vmware.com<mailto: > jb...@vmware.com>> wrote: > > What is the plan to support Java 16 for Apache Geode? Timeframe? > > Running Apache Geode on a Java 16 Runtime produces errors like the > following: > > > - org.apache.geode.InternalGemFireException: unable to retrieve underlying > byte buffer > - at org.apache.geode.internal.net > .BufferPool.getPoolableBuffer(BufferPool.java:346) > - at org.apache.geode.internal.net > .BufferPool.releaseBuffer(BufferPool.java:310) > - at org.apache.geode.internal.net > .BufferPool.releaseSenderBuffer(BufferPool.java:213) > - at > org.apache.geode.internal.tcp.MsgStreamer.release(MsgStreamer.java:100) > - at > org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:256) > - at > org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306) > - at > org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182) > - at > org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511) > - at > org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346) > - at > org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2050) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1978) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2015) > - at > org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083) > - at > org.apache.geode.distributed.internal.StartupMessage.process(StartupMessage.java:279) > - at > org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:376) > - at > org.apache.geode.distributed.internal.DistributionMessage$1.run(DistributionMessage.java:441) > - at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) > - at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) > - at > org.apache.geode.distributed.internal.ClusterOperationExecutors.runUntilShutdown(ClusterOperationExecutors.java:441) > - at > org.apache.geode.distributed.internal.ClusterOperationExecutors.doWaitingThread(ClusterOperationExecutors.java:410) > - at > org.apache.geode.logging.internal.executors.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:119) > - at java.base/java.lang.Thread.run(Thread.java:831) > - Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > public java.lang.Object java.nio.DirectByteBuffer.attachment() accessible: > module java.base does not "opens java.nio" to unnamed module @40f9161a > - at > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357) > - at > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) > - at > java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199) > - at java.base/java.lang.reflect.Method.setAccessible(Method.java:193) > - at org.apache.geode.internal.net > .BufferPool.getPoolableBuffer(BufferPool.java:343) > - ... 22 common frames omitted > - 2021-04-30 14:57:13,638 INFO ributed.internal.membership.gms.Services: > 606 - received leave request from > 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>:41001 > for > 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>:41001 > - 2021-04-30 14:57:13,640 INFO ributed.internal.membership.gms.Services: > 617 - JoinLeave.processMessage(LeaveRequestMessage) invoked. > isCoordinator=true; isStopping=false; cancelInProgress=false > - 2021-04-30 14:57:13,647 ERROR xecutors.LoggingUncaughtExceptionHandler: > 92 - Uncaught exception in thread Thread[P2P message reader for > 10.99.199.28(CacheNotUsingSharedConfigurationIntegrationTest:29149)<v1>:41001 > shared unordered uid=1 local port=53039 remote port=64063,10,main] > - org.apache.geode.InternalGemFireException: unable to retrieve underlying > byte buffer > - at org.apache.geode.internal.net > .BufferPool.getPoolableBuffer(BufferPool.java:346) > - at org.apache.geode.internal.net > .BufferPool.releaseBuffer(BufferPool.java:310) > - at org.apache.geode.internal.net > .BufferPool.releaseReceiveBuffer(BufferPool.java:217) > - at > org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512) > - at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495) > - at java.base/java.lang.Thread.run(Thread.java:831) > - Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > public java.lang.Object java.nio.DirectByteBuffer.attachment() accessible: > module java.base does not "opens java.nio" to unnamed module @40f9161a > - at > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357) > - at > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) > - at > java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199) > - at java.base/java.lang.reflect.Method.setAccessible(Method.java:193) > - at org.apache.geode.internal.net > .BufferPool.getPoolableBuffer(BufferPool.java:343) > - ... 5 common frames omitted > - 2021-04-30 14:57:13,651 ERROR xecutors.LoggingUncaughtExceptionHandler: > 92 - Uncaught exception in thread Thread[P2P handshake reader@53e57a03-1 > ,5,main] > - org.apache.geode.InternalGemFireException: unable to retrieve underlying > byte buffer > - at org.apache.geode.internal.net > .BufferPool.getPoolableBuffer(BufferPool.java:346) > - at org.apache.geode.internal.net > .BufferPool.releaseBuffer(BufferPool.java:310) > - at org.apache.geode.internal.net > .BufferPool.releaseReceiveBuffer(BufferPool.java:217) > - at > org.apache.geode.internal.tcp.Connection.releaseInputBuffer(Connection.java:1512) > - at org.apache.geode.internal.tcp.Connection.run(Connection.java:1495) > - at java.base/java.lang.Thread.run(Thread.java:831) > - Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make > public java.lang.Object java.nio.DirectByteBuffer.attachment() accessible: > module java.base does not "opens java.nio" to unnamed module @40f9161a > - at > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357) > - at > java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) > - at > java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199) > - at java.base/java.lang.reflect.Method.setAccessible(Method.java:193) > - at org.apache.geode.internal.net > .BufferPool.getPoolableBuffer(BufferPool.java:343) > - ... 5 common frames omitted > > Regards, > > -John > >