You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Joe Luo (JIRA)" <ji...@apache.org> on 2017/02/13 15:56:41 UTC

[jira] [Created] (CAMEL-10822) Camel Jasypt component throws NPE

Joe Luo created CAMEL-10822:
-------------------------------

             Summary: Camel Jasypt component throws NPE
                 Key: CAMEL-10822
                 URL: https://issues.apache.org/jira/browse/CAMEL-10822
             Project: Camel
          Issue Type: Bug
          Components: camel-jasypt
    Affects Versions: 2.17.0
            Reporter: Joe Luo


Camel Jasypt component throws NPE if the jasypt master password is configured to use environment variable but not set to any value.

For instance, I had a bean configured for JasyptPropertiesParser:
{code}
<bean id="jasypt" class="org.apache.camel.component.jasypt.JasyptPropertiesParser">
        <property name="password" value="sysenv:JASYPT_ENCRYPTION_PASSWORD"/>
    </bean>
{code}
But I did not set value for the environment variable "JASYPT_ENCRYPTION_PASSWORD", then my camel-jasypt route would fail with a NPE:
{code}
Caused by: java.lang.NullPointerException
	at org.apache.camel.component.jasypt.JasyptPropertiesParser.setPassword(JasyptPropertiesParser.java:95)
...
{code}

The reason is the org.apache.camel.component.jasypt.JasyptPropertiesParser.java code setPassword method here:
{code}
public void setPassword(String password) {
    // lookup password as either environment or JVM system property
    if (password.startsWith("sysenv:")) {
        password = System.getenv(ObjectHelper.after(password, "sysenv:"));
    }
    if (password.startsWith("sys:")) {
        password = System.getProperty(ObjectHelper.after(password, "sys:"));
    }
    this.password = password;
}
{code}
The first "if" statement returns a NULL and the second "if" statement throws a NPE due to lack of NPE check.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)