From 44b47bb41ecee409af2075926bf9fb29257badb5 Mon Sep 17 00:00:00 2001 From: arnigu Date: Tue, 15 Aug 2017 13:42:07 +0000 Subject: [PATCH 1/3] Catch exception on CDI initialization on IBM WebSphere - Update 8.5.5.12. --- .../CDIComponentProviderFactoryInitializer.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/jersey-servlet/src/main/java/com/sun/jersey/server/impl/cdi/CDIComponentProviderFactoryInitializer.java b/jersey-servlet/src/main/java/com/sun/jersey/server/impl/cdi/CDIComponentProviderFactoryInitializer.java index 3a96e4632..614ce5afb 100644 --- a/jersey-servlet/src/main/java/com/sun/jersey/server/impl/cdi/CDIComponentProviderFactoryInitializer.java +++ b/jersey-servlet/src/main/java/com/sun/jersey/server/impl/cdi/CDIComponentProviderFactoryInitializer.java @@ -58,7 +58,7 @@ * @author robc */ public class CDIComponentProviderFactoryInitializer { - + private static final Logger LOGGER = Logger.getLogger(CDIComponentProviderFactoryInitializer.class.getName()); private static final String BEAN_MANAGER_CLASS = "javax.enterprise.inject.spi.BeanManager"; @@ -73,8 +73,15 @@ public static void initialize(WebConfig wc, ResourceConfig rc, WebApplication wa return; } - rc.getSingletons().add(new CDIComponentProviderFactory(beanManager, rc, wa)); - LOGGER.info("CDI support is enabled"); + // Captures CDI bean errors on WebSphere Application Server 8.5.5.12 fixpack APR + // PI66630 UnsatisfiedResolutionException thrown in non-CDI environment + try{ + rc.getSingletons().add(new CDIComponentProviderFactory(beanManager, rc, wa)); + LOGGER.info("CDI support is enabled"); + }catch(Exception ex) + { + LOGGER.log(Level.CONFIG, "The CDIComponentProviderFactory failed to initialize", ex); + } } private static Object lookup(ServletContext sc) { @@ -118,7 +125,7 @@ private static Object lookupInJndi(String name) { LOGGER.config("The CDI BeanManager is at " + name); return beanManager; - + } catch (NamingException ex) { LOGGER.log(Level.CONFIG, "The CDI BeanManager is not available at " + name, ex); } From 5bb420b8495dc8dec26763b27f124de8d8b6582b Mon Sep 17 00:00:00 2001 From: arnigu Date: Tue, 15 Aug 2017 14:12:40 +0000 Subject: [PATCH 2/3] Fixed comments --- .../impl/cdi/CDIComponentProviderFactoryInitializer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jersey-servlet/src/main/java/com/sun/jersey/server/impl/cdi/CDIComponentProviderFactoryInitializer.java b/jersey-servlet/src/main/java/com/sun/jersey/server/impl/cdi/CDIComponentProviderFactoryInitializer.java index 614ce5afb..cbdd32534 100644 --- a/jersey-servlet/src/main/java/com/sun/jersey/server/impl/cdi/CDIComponentProviderFactoryInitializer.java +++ b/jersey-servlet/src/main/java/com/sun/jersey/server/impl/cdi/CDIComponentProviderFactoryInitializer.java @@ -73,8 +73,8 @@ public static void initialize(WebConfig wc, ResourceConfig rc, WebApplication wa return; } - // Captures CDI bean errors on WebSphere Application Server 8.5.5.12 fixpack APR - // PI66630 UnsatisfiedResolutionException thrown in non-CDI environment + // Captures CDI bean errors on WebSphere Application Server 8.5.5.12 fixpack + // See: APR PI66630 UnsatisfiedResolutionException thrown in non-CDI environment try{ rc.getSingletons().add(new CDIComponentProviderFactory(beanManager, rc, wa)); LOGGER.info("CDI support is enabled"); From 30cbcafbafcb84eb60ac802f0a95ec073edc293a Mon Sep 17 00:00:00 2001 From: arnigu Date: Tue, 15 Aug 2017 15:48:17 +0000 Subject: [PATCH 3/3] Catch the ClassCastException and log it --- .../server/impl/cdi/CDIComponentProviderFactoryInitializer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jersey-servlet/src/main/java/com/sun/jersey/server/impl/cdi/CDIComponentProviderFactoryInitializer.java b/jersey-servlet/src/main/java/com/sun/jersey/server/impl/cdi/CDIComponentProviderFactoryInitializer.java index cbdd32534..05fc0b257 100644 --- a/jersey-servlet/src/main/java/com/sun/jersey/server/impl/cdi/CDIComponentProviderFactoryInitializer.java +++ b/jersey-servlet/src/main/java/com/sun/jersey/server/impl/cdi/CDIComponentProviderFactoryInitializer.java @@ -78,7 +78,7 @@ public static void initialize(WebConfig wc, ResourceConfig rc, WebApplication wa try{ rc.getSingletons().add(new CDIComponentProviderFactory(beanManager, rc, wa)); LOGGER.info("CDI support is enabled"); - }catch(Exception ex) + }catch(ClassCastException ex) { LOGGER.log(Level.CONFIG, "The CDIComponentProviderFactory failed to initialize", ex); }