jankotek / mapdb

MapDB provides concurrent Maps, Sets and Queues backed by disk storage or off-heap-memory. It is a fast and easy to use embedded Java database engine.
https://mapdb.org
Apache License 2.0
4.87k stars 872 forks source link

Java 16 error in "HTreeMap.put()": Unable to make field final java.util.Collection java.util.Collections$UnmodifiableCollection.c accessible #990

Open ksilz opened 3 years ago

ksilz commented 3 years ago

Hi,

I switched to Java 16 today, and the put() below produces an error. It works with Java 15. My code is compiled with Java 14.

HTreeMap<String, V> cache = this.openCache(expirationTime, expirationTimeUnit);
cache.put(key, value);

Here's the stacktrace:

Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field final java.util.Collection java.util.Collections$UnmodifiableCollection.c accessible: module java.base does not "opens java.util" to unnamed module @65e98b1c
    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.mapdb.elsa.ElsaSerializerPojo$FieldInfo.<init>(ElsaSerializerPojo.java:247)
    at org.mapdb.elsa.ElsaSerializerPojo.makeClassInfo(ElsaSerializerPojo.java:297)
    at org.mapdb.elsa.ElsaSerializerPojo.serializeUnknownObject(ElsaSerializerPojo.java:456)
    at org.mapdb.elsa.ElsaSerializerBase.serialize(ElsaSerializerBase.java:1093)
    at org.mapdb.elsa.ElsaSerializerPojo.serializeUnknownObject(ElsaSerializerPojo.java:500)
    at org.mapdb.elsa.ElsaSerializerBase.serialize(ElsaSerializerBase.java:1093)
    at org.mapdb.elsa.ElsaSerializerPojo.serializeUnknownObject(ElsaSerializerPojo.java:500)
    at org.mapdb.elsa.ElsaSerializerBase.serialize(ElsaSerializerBase.java:1093)
    at org.mapdb.elsa.ElsaSerializerBase.serialize(ElsaSerializerBase.java:1026)
    at org.mapdb.serializer.SerializerElsa.serialize(SerializerElsa.kt:19)
    at org.mapdb.serializer.SerializerCompressionWrapper.serialize(SerializerCompressionWrapper.java:38)
    at org.mapdb.StoreDirectAbstract.serialize(StoreDirectAbstract.kt:243)
    at org.mapdb.StoreWAL.put(StoreWAL.kt:379)
    at org.mapdb.HTreeMap.valueWrap(HTreeMap.kt:1208)
    at org.mapdb.HTreeMap.putprotected(HTreeMap.kt:344)
    at org.mapdb.HTreeMap.put(HTreeMap.kt:324)
    at com.yourhomeingoodhands.web.clean.shared.util.SCleanCache.put(SCleanCache.java:69)
ksilz commented 2 years ago

It seems that this project is dead or on hold - no commits or reactions to issues here for 7 months.