You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2016/07/25 14:30:20 UTC
[jira] [Resolved] (CXF-6966) Using CXF in JDK endorsed dir as
JAX-WS impl crashes
[ https://issues.apache.org/jira/browse/CXF-6966?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp resolved CXF-6966.
------------------------------
Resolution: Fixed
Assignee: Daniel Kulp
Fix Version/s: 3.1.7
3.0.10
> Using CXF in JDK endorsed dir as JAX-WS impl crashes
> ----------------------------------------------------
>
> Key: CXF-6966
> URL: https://issues.apache.org/jira/browse/CXF-6966
> Project: CXF
> Issue Type: Bug
> Components: Core, JAX-WS Runtime
> Affects Versions: 3.1.6
> Environment: Oracle JDK 1.8 (Update 91), not tested with other environments.
> Reporter: Max Bureck
> Assignee: Daniel Kulp
> Priority: Critical
> Fix For: 3.0.10, 3.1.7
>
>
> Placing the basic CXF libraries into a directory and calling a java program with -Djava.endorsed.dirs=<selected_dir> using Oracle JDK 1.8 causes the program to crash when starting a WebService using the Endpoint API.
> Here is the relevant stack trace:
> Caused by: java.lang.NullPointerException
> at java.util.ResourceBundle.getBundle(Unknown Source)
> at org.apache.cxf.common.i18n.BundleUtils.getBundle(BundleUtils.java:80)
> at org.apache.cxf.common.logging.LogUtils.createLogger(LogUtils.java:246)
> at org.apache.cxf.common.logging.LogUtils.getL7dLogger(LogUtils.java:198)
> at org.apache.cxf.jaxws.spi.ProviderImpl.<clinit>(ProviderImpl.java:76)
> ... 20 more
> The root cause seems to be that class "org.apache.cxf.jaxws.spi.ProviderImpl" has the following static field:
> {code:java}
> protected static final Logger LOG =
> LogUtils.getL7dLogger(ProviderImpl.class);
> {code}
> Unfortunately the {{ProviderImpl.class}} does not reference a ClassLoader when using Oracles JDK. Down the stack the method {{java.util.ResourceBundle.getBundle(String, Locale, ClassLoader)}} is called with {{null}} as ClassLoader, and the implementation of Oracles JDK throws a {{NullPointerException}}.
> This can most likely be avoided by slightly modifying {{org.apache.cxf.common.i18n.BundleUtils.getBundle(Class<?>)}} to not only catch {{MissingResourceException}}, but {{RuntimeException}} in general or check if the ClassLoader is {{null}} beforehand and not pay the cost of an exception being thrown.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)