From cd93c216d632e0c7a0024a856579ad8bb018f66c Mon Sep 17 00:00:00 2001 From: jansupol Date: Thu, 11 Apr 2024 10:15:51 +0200 Subject: [PATCH] prevent Jackson failing while loading Modules (classloader issues) Signed-off-by: jansupol --- .../internal/DefaultJacksonJaxbJsonProvider.java | 10 +++++++++- .../glassfish/jersey/jackson/localization.properties | 5 +++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/media/json-jackson/src/main/java/org/glassfish/jersey/jackson/internal/DefaultJacksonJaxbJsonProvider.java b/media/json-jackson/src/main/java/org/glassfish/jersey/jackson/internal/DefaultJacksonJaxbJsonProvider.java index b11c1214cf..b2cc2c9be2 100644 --- a/media/json-jackson/src/main/java/org/glassfish/jersey/jackson/internal/DefaultJacksonJaxbJsonProvider.java +++ b/media/json-jackson/src/main/java/org/glassfish/jersey/jackson/internal/DefaultJacksonJaxbJsonProvider.java @@ -31,6 +31,7 @@ import java.lang.annotation.Annotation; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.logging.Logger; import jakarta.annotation.PostConstruct; @@ -104,7 +105,14 @@ private List filterModules() { commonConfig.getRuntimeType(), CommonProperties.JSON_JACKSON_ENABLED_MODULES, String.class); - final List modules = ObjectMapper.findModules(); + final List modules; + try { + modules = ObjectMapper.findModules(); + } catch (Exception e) { + LOGGER.warning(LocalizationMessages.ERROR_MODULES_NOT_LOADED(e.getMessage())); + return Collections.emptyList(); + } + for (String exludeModuleName : EXCLUDE_MODULE_NAMES) { modules.removeIf(mod -> mod.getModuleName().contains(exludeModuleName)); } diff --git a/media/json-jackson/src/main/resources/org/glassfish/jersey/jackson/localization.properties b/media/json-jackson/src/main/resources/org/glassfish/jersey/jackson/localization.properties index f8b59da71c..a9144fd496 100644 --- a/media/json-jackson/src/main/resources/org/glassfish/jersey/jackson/localization.properties +++ b/media/json-jackson/src/main/resources/org/glassfish/jersey/jackson/localization.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2023, 2024 Oracle and/or its affiliates. All rights reserved. # # This program and the accompanying materials are made available under the # terms of the Eclipse Public License v. 2.0, which is available at @@ -14,4 +14,5 @@ # SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 # -error.jackson.streamreadconstraints=Error setting StreamReadConstraints: {0}. Possibly not Jackson 2.15? \ No newline at end of file +error.jackson.streamreadconstraints=Error setting StreamReadConstraints: {0}. Possibly not Jackson 2.15? +error.modules.not.loaded=Jackson modules could not be loaded: {0} \ No newline at end of file