[ https://issues.apache.org/jira/browse/GEODE-9393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17387554#comment-17387554 ]
Darrel Schneider edited comment on GEODE-9393 at 7/27/21, 7:54 PM: ------------------------------------------------------------------- It looks like all of the issues found so far involve geode making calls to Field.setAccessible. It looks like Method.setAccessible would also be an issue. For more info on why this started failing see: [https://softwaregarden.dev/en/posts/new-java/illegal-access-in-java-16/] I've confirmed that setting the JVM option "--illegal-access=permit" causes geode to not fail when setAccessible is called. was (Author: dschneider): It looks like all of the issues found so far involve geode making calls to Field.setAccessible. It looks like Method.setAccessible would also be an issue. For more info on why this started failing see: [https://stackoverflow.com/questions/41265266/how-to-solve-inaccessibleobjectexception-unable-to-make-member-accessible-m] > Apache Geode does not run on Java 16 > ------------------------------------ > > Key: GEODE-9393 > URL: https://issues.apache.org/jira/browse/GEODE-9393 > Project: Geode > Issue Type: Improvement > Components: core > Affects Versions: 1.13.2 > Reporter: John Blum > Priority: Blocker > Labels: Java16 > > Due to Java 16 tightened restrictions, Apache Geode fails to run on a Java 16 > Runtime (JRE). > Exceptions like the following are thrown: > {code} > - 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 > {code} > And... > {code} > 2021-05-10 15:10:25,458 ERROR xecutors.LoggingUncaughtExceptionHandler: 92 - > Uncaught exception in thread Thread[LonerDistributionManagerThread8,5,main] > java.lang.reflect.InaccessibleObjectException: Unable to make field private > static final jdk.internal.access.JavaLangAccess java.util.UUID.jla > accessible: module java.base does not "opens java.util" to unnamed module > @7960847b > 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.Field.checkCanSetAccessible(Field.java:177) > at java.base/java.lang.reflect.Field.setAccessible(Field.java:171) > at > org.apache.geode.internal.size.ObjectTraverser.buildFieldSet(ObjectTraverser.java:117) > at > org.apache.geode.internal.size.ObjectTraverser.cacheFieldSet(ObjectTraverser.java:92) > at > org.apache.geode.internal.size.ObjectTraverser.doSearch(ObjectTraverser.java:65) > at > org.apache.geode.internal.size.ObjectTraverser.breadthFirstSearch(ObjectTraverser.java:54) > at > org.apache.geode.internal.size.ObjectGraphSizer.size(ObjectGraphSizer.java:101) > at > org.apache.geode.internal.size.ReflectionObjectSizer.sizeof(ReflectionObjectSizer.java:76) > at > org.apache.geode.internal.size.SizeClassOnceObjectSizer.sizeof(SizeClassOnceObjectSizer.java:63) > at > org.apache.geode.internal.cache.TombstoneService$Tombstone.getSize(TombstoneService.java:398) > at > org.apache.geode.internal.cache.TombstoneService$TombstoneSweeper.scheduleTombstone(TombstoneService.java:982) > at > org.apache.geode.internal.cache.TombstoneService.scheduleTombstone(TombstoneService.java:196) > at > org.apache.geode.internal.cache.LocalRegion.scheduleTombstone(LocalRegion.java:3298) > at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.makeTombstone(AbstractRegionEntry.java:265) > at > org.apache.geode.internal.cache.entries.AbstractRegionEntry.destroy(AbstractRegionEntry.java:879) > at > org.apache.geode.internal.cache.map.RegionMapDestroy.destroyEntry(RegionMapDestroy.java:734) > at > org.apache.geode.internal.cache.map.RegionMapDestroy.destroyExistingEntry(RegionMapDestroy.java:392) > at > org.apache.geode.internal.cache.map.RegionMapDestroy.handleExistingRegionEntry(RegionMapDestroy.java:244) > at > org.apache.geode.internal.cache.map.RegionMapDestroy.destroy(RegionMapDestroy.java:152) > at > org.apache.geode.internal.cache.AbstractRegionMap.destroy(AbstractRegionMap.java:968) > at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6499) > at > org.apache.geode.internal.cache.LocalRegion.mapDestroy(LocalRegion.java:6473) > at > org.apache.geode.internal.cache.BucketRegion.basicDestroy(BucketRegion.java:1194) > at > org.apache.geode.internal.cache.LocalRegion.validatedDestroy(LocalRegion.java:1127) > at > org.apache.geode.internal.cache.DistributedRegion.validatedDestroy(DistributedRegion.java:940) > at org.apache.geode.internal.cache.LocalRegion.destroy(LocalRegion.java:1112) > at > org.apache.geode.cache.lucene.internal.partition.BucketTargetingMap.remove(BucketTargetingMap.java:59) > at > org.apache.geode.cache.lucene.internal.filesystem.FileSystem.deleteFile(FileSystem.java:125) > at > org.apache.geode.cache.lucene.internal.directory.RegionDirectory.deleteFile(RegionDirectory.java:66) > at > org.apache.lucene.store.LockValidatingDirectoryWrapper.deleteFile(LockValidatingDirectoryWrapper.java:38) > at > org.apache.lucene.index.IndexFileDeleter.deleteFile(IndexFileDeleter.java:723) > at > org.apache.lucene.index.IndexFileDeleter.deleteFiles(IndexFileDeleter.java:717) > at > org.apache.lucene.index.IndexFileDeleter.deleteNewFiles(IndexFileDeleter.java:693) > at org.apache.lucene.index.IndexWriter.deleteNewFiles(IndexWriter.java:4965) > at > org.apache.lucene.index.DocumentsWriter$DeleteNewFilesEvent.process(DocumentsWriter.java:771) > at org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5043) > at org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5034) > at > org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:3019) > at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:3244) > at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3207) > at > org.apache.geode.cache.lucene.internal.repository.IndexRepositoryImpl.commit(IndexRepositoryImpl.java:169) > at > org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.reindexUserDataRegion(IndexRepositoryFactory.java:196) > at > org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.finishComputingRepository(IndexRepositoryFactory.java:128) > at > org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.computeIndexRepository(IndexRepositoryFactory.java:66) > at > org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.computeRepository(PartitionedRepositoryManager.java:151) > at > org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.lambda$computeRepository$1(PartitionedRepositoryManager.java:170) > at > java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1916) > at > org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.computeRepository(PartitionedRepositoryManager.java:162) > at > org.apache.geode.cache.lucene.internal.LuceneBucketListener.lambda$afterPrimary$0(LuceneBucketListener.java:40) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)