JOHNZON-315 skip Package.getPackage if it does not work
diff --git a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
index e5a5b86..467b563 100644
--- a/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
+++ b/johnzon-jsonb/src/main/java/org/apache/johnzon/jsonb/DefaultPropertyVisibilityStrategy.java
@@ -32,6 +32,7 @@
class DefaultPropertyVisibilityStrategy implements javax.json.bind.config.PropertyVisibilityStrategy {
private final ConcurrentMap<Class<?>, PropertyVisibilityStrategy> strategies = new ConcurrentHashMap<>();
+ private volatile boolean skipGetpackage;
@Override
public boolean isVisible(final Field field) {
@@ -75,7 +76,13 @@
break;
}
final String parentPack = name.substring(0, end);
- p = Package.getPackage(parentPack);
+ if (!skipGetpackage) {
+ try {
+ p = Package.getPackage(parentPack);
+ } catch (final Error unsupported) {
+ skipGetpackage = true; // graalvm likely
+ }
+ }
if (p == null) {
try {
p = ofNullable(type.getClassLoader()).orElseGet(ClassLoader::getSystemClassLoader)