Skip to content

ConfigException throws NPE when ConfigOrigin is null #367

@wsargent

Description

@wsargent

If a string is parsed that results in a null ConfigOrigin, then ConfigException will throw NPE.

config 1.3.0:

[error]  java.lang.NullPointerException: null (ConfigException.java:23)
[error] com.typesafe.config.ConfigException.<init>(ConfigException.java:23)
[info]
[error] com.typesafe.config.ConfigException$BadPath.<init>(ConfigException.java:198)
[error] com.typesafe.config.ConfigException$BadPath.<init>(ConfigException.java:204)
[error] com.typesafe.config.impl.PathParser.parsePathExpression(PathParser.java:170)
[error] com.typesafe.config.impl.PathParser.parsePathNodeExpression(PathParser.java:85)
[error] com.typesafe.config.impl.PathParser.parsePathNodeExpression(PathParser.java:79)
[error] com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseKey(ConfigDocumentParser.java:283)
[error] com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseObject(ConfigDocumentParser.java:397)
[error] com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parse(ConfigDocumentParser.java:595)
[error] com.typesafe.config.impl.ConfigDocumentParser.parse(ConfigDocumentParser.java:14)
[error] com.typesafe.config.impl.Parseable.rawParseValue(Parseable.java:260)
[error] com.typesafe.config.impl.Parseable.rawParseValue(Parseable.java:248)
[error] com.typesafe.config.impl.Parseable.parseValue(Parseable.java:180)
[error] com.typesafe.config.impl.Parseable.parseValue(Parseable.java:174)
[error] com.typesafe.config.impl.Parseable.parse(Parseable.java:299)
[error] com.typesafe.config.ConfigFactory.parseString(ConfigFactory.java:1046)
[error] com.typesafe.config.ConfigFactory.parseString(ConfigFactory.java:1056)

The source is that origin.description is called without a null check.

    protected ConfigException(ConfigOrigin origin, String message,
            Throwable cause) {
        super(origin.description() + ": " + message, cause);
        this.origin = origin;
    }

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions