From d22535592e8b0103b62f8a2a24f8c67f8b6399eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=8Brb?= <javaerb@users.noreply.github.com>
Date: Wed, 21 Feb 2018 08:55:34 -0500
Subject: [PATCH] Never pass null ConfigOrigin to
 PathParser.parsePathNodeExpression (#538)

This was causing NPEs on certain parse errors while trying to construct a ConfigException
---
 .../java/com/typesafe/config/impl/ConfigDocumentParser.java | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/config/src/main/java/com/typesafe/config/impl/ConfigDocumentParser.java b/config/src/main/java/com/typesafe/config/impl/ConfigDocumentParser.java
index 235608a3..29ffc70a 100644
--- a/config/src/main/java/com/typesafe/config/impl/ConfigDocumentParser.java
+++ b/config/src/main/java/com/typesafe/config/impl/ConfigDocumentParser.java
@@ -261,7 +261,8 @@ final class ConfigDocumentParser {
         private ConfigNodePath parseKey(Token token) {
             if (flavor == ConfigSyntax.JSON) {
                 if (Tokens.isValueWithType(token, ConfigValueType.STRING)) {
-                    return PathParser.parsePathNodeExpression(Collections.singletonList(token).iterator(), null);
+                    return PathParser.parsePathNodeExpression(Collections.singletonList(token).iterator(),
+                                                              baseOrigin.withLineNumber(lineNumber));
                 } else {
                     throw parseError("Expecting close brace } or a field name here, got "
                             + token);
@@ -279,7 +280,8 @@ final class ConfigDocumentParser {
                 }
 
                 putBack(t); // put back the token we ended with
-                return PathParser.parsePathNodeExpression(expression.iterator(), null);
+                return PathParser.parsePathNodeExpression(expression.iterator(),
+                                                          baseOrigin.withLineNumber(lineNumber));
             }
         }