cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christoph Eßer (JIRA) <j...@apache.org>
Subject [jira] [Updated] (CXF-5822) NullPointerException in PropertiesLoaderUtils
Date Wed, 25 Jun 2014 14:47:24 GMT

     [ https://issues.apache.org/jira/browse/CXF-5822?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Christoph Eßer updated CXF-5822:
--------------------------------

    Description: 
Under some circumstances in our project {{Thread.currentThread().getContextClasssLoader()}}
is {{null}}. This leads to a {{NullPointerException}} when org.apache.cxf.common.util.PropertiesLoaderUtils.loadAllProperties()
is called with that as an argument.

This is the specific part of the code that contains the problem:

{code:title=PropertiesLoaderUtils.java|borderStyle=solid}
/**
     * Load all properties from the given class path resource, using the given
     * class loader.
     * <p>
     * Merges properties if more than one resource of the same name found in the
     * class path.
     * 
     * @param resourceName the name of the class path resource
     * @param classLoader the ClassLoader to use for loading (or
     *            <code>null</code> to use the default class loader)
     * @return the populated Properties instance
     * @throws IOException if loading failed
     */
    public static Properties loadAllProperties(String resourceName, ClassLoader classLoader)
        throws IOException {
        return loadAllProperties(resourceName, classLoader, null, null, null);
    }        
    public static Properties loadAllProperties(String resourceName, ClassLoader classLoader,
                                               Logger logger, Level level, String msg)
        throws IOException {
        Properties properties = new Properties();
        Enumeration<URL> urls = classLoader.getResources(resourceName);
...
{code}

The Javadoc says that {{null}} is a valid value for this argument. However, the code does
not check the variable for {{null}} and just calls {{classLoader.getResources(resourceName)}}.
This check should be added and {{classLoader}} should be set to a reasonable value in case
it is {{null}}. I will add a pull request for a fix of this issue later.

Please note that we are bound to Java 1.5 in our project and thus switching to CXF 2.7 or
3.0 is not possible for us.

  was:
Under some circumstances in our project {{Thread.currentThread().getContextClasssLoader()}}
is {{null}}. This leads to a {{NullPointerException}} when org.apache.cxf.common.util.PropertiesLoaderUtils.loadAllProperties()
is called with that as an argument.

This is the specific part of the code that contains the problem:

{code:title=PropertiesLoaderUtils.java|borderStyle=solid}
/**
     * Load all properties from the given class path resource, using the given
     * class loader.
     * <p>
     * Merges properties if more than one resource of the same name found in the
     * class path.
     * 
     * @param resourceName the name of the class path resource
     * @param classLoader the ClassLoader to use for loading (or
     *            <code>null</code> to use the default class loader)
     * @return the populated Properties instance
     * @throws IOException if loading failed
     */
    public static Properties loadAllProperties(String resourceName, ClassLoader classLoader)
        throws IOException {
        return loadAllProperties(resourceName, classLoader, null, null, null);
    }        
    public static Properties loadAllProperties(String resourceName, ClassLoader classLoader,
                                               Logger logger, Level level, String msg)
        throws IOException {
        Properties properties = new Properties();
        Enumeration<URL> urls = classLoader.getResources(resourceName);
...
{code}

The Javadoc says that {{null}} is a valid value for this argument. However, the code does
not check the variable for {{null}} and just calls {{classLoader.getResources(resourceName)}}.
This check should be added and {{classLoader}} should be set to a reasonable value in case
it is {{null}}. I will add a pull request for a fix of this issue later.


> NullPointerException in PropertiesLoaderUtils
> ---------------------------------------------
>
>                 Key: CXF-5822
>                 URL: https://issues.apache.org/jira/browse/CXF-5822
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.6.14
>            Reporter: Christoph Eßer
>            Priority: Critical
>
> Under some circumstances in our project {{Thread.currentThread().getContextClasssLoader()}}
is {{null}}. This leads to a {{NullPointerException}} when org.apache.cxf.common.util.PropertiesLoaderUtils.loadAllProperties()
is called with that as an argument.
> This is the specific part of the code that contains the problem:
> {code:title=PropertiesLoaderUtils.java|borderStyle=solid}
> /**
>      * Load all properties from the given class path resource, using the given
>      * class loader.
>      * <p>
>      * Merges properties if more than one resource of the same name found in the
>      * class path.
>      * 
>      * @param resourceName the name of the class path resource
>      * @param classLoader the ClassLoader to use for loading (or
>      *            <code>null</code> to use the default class loader)
>      * @return the populated Properties instance
>      * @throws IOException if loading failed
>      */
>     public static Properties loadAllProperties(String resourceName, ClassLoader classLoader)
>         throws IOException {
>         return loadAllProperties(resourceName, classLoader, null, null, null);
>     }        
>     public static Properties loadAllProperties(String resourceName, ClassLoader classLoader,
>                                                Logger logger, Level level, String msg)
>         throws IOException {
>         Properties properties = new Properties();
>         Enumeration<URL> urls = classLoader.getResources(resourceName);
> ...
> {code}
> The Javadoc says that {{null}} is a valid value for this argument. However, the code
does not check the variable for {{null}} and just calls {{classLoader.getResources(resourceName)}}.
This check should be added and {{classLoader}} should be set to a reasonable value in case
it is {{null}}. I will add a pull request for a fix of this issue later.
> Please note that we are bound to Java 1.5 in our project and thus switching to CXF 2.7
or 3.0 is not possible for us.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message