Need JDK17 Compatable JAR
koundinyarvs opened this issue · comments
The following classes are using sun.misc.Unsafe
com.google.common.cache.Striped64
com.google.common.hash.LittleEndianByteArray
com.google.common.primitives.UnsignedBytes
com.google.common.util.concurrent.AbstractFuture
class sun.misc.Unsafe is a jdk internal class. package sun.misc is jdk internal after jdk 8. In jdk16, --illegal-access=deny was default. This option is ignored in jdk 17. usage context: run method declaration (return type)
Can you provide some information about what problem you're seeing? We have included fallback implementations for cases in which Unsafe
is not available—except, it appears, perhaps not for Striped64
. I would expect for those normally to automatically kick in. Are you using some kind of static analyzer that flags the Unsafe
usages?
Hi @cpovirk
Yes we are using a static analyzer to see what are the packages that java 17 doesn't like to expose usage of CLASS sun.misc.Unsafe and it is identifying
Striped64
LittleEndianByteArray
UnsignedBytes
AbstractFuture
As some classes in guava which are using sun.misc.Unsafe and this needs to be avoided
The analyzer is complaining that
class sun.misc.Unsafe is a jdk internal class. package sun.misc is jdk internal after jdk 8. In jdk16, --illegal-access=deny was default. This option is ignored in jdk 17. usage context: sun.misc.Unsafe.getUnsafe call
Is there something that we can put on our code to suppress the static analyzer for the classes that have a fallback implementation? If we can do that without adding any dependencies, then we'd probably do it.
We probably should look at Striped64
. (Note that it's part of common.cache, and as always, we encourage people to use Caffeine for caching nowadays.)