Skip to content

Commit 70c6df4

Browse files
committed
Fix NPE when reading empty YAML or JSON file
1 parent 9443bad commit 70c6df4

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# Version 3.1.5 (2019-09-12)
2+
3+
* [fix] Fix NullPointerException when a YAML or JSON file read by the Jackson provider is empty.
4+
15
# Version 3.1.4 (2018-12-18)
26

37
* [fix] Fix macro and function evaluation in properties mapping/unmapping.

src/main/java/org/seedstack/coffig/provider/JacksonProvider.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* License, v. 2.0. If a copy of the MPL was not distributed with this
66
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
77
*/
8+
89
package org.seedstack.coffig.provider;
910

1011
import com.fasterxml.jackson.databind.JsonNode;
@@ -107,11 +108,13 @@ private MapNode buildTreeFromSource(URL url) {
107108

108109
private MapNode buildTreeFromFields(JsonNode node) {
109110
List<NamedNode> namedNodes = new ArrayList<>();
110-
node.fields().forEachRemaining(entry -> {
111-
String name = entry.getKey();
112-
TreeNode treeNode = buildTreeFromField(entry.getValue());
113-
namedNodes.add(new NamedNode(name, treeNode));
114-
});
111+
if (node != null) {
112+
node.fields().forEachRemaining(entry -> {
113+
String name = entry.getKey();
114+
TreeNode treeNode = buildTreeFromField(entry.getValue());
115+
namedNodes.add(new NamedNode(name, treeNode));
116+
});
117+
}
115118
return new MapNode(namedNodes.toArray(new NamedNode[0]));
116119
}
117120

0 commit comments

Comments
 (0)