SAMOA-73: fixes NullPointerException in VerticalHoeffdingTree
diff --git a/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/FoundNode.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/FoundNode.java
index c8522c8..eba1441 100644
--- a/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/FoundNode.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/FoundNode.java
@@ -34,7 +34,7 @@
*/
private static final long serialVersionUID = -637695387934143293L;
- private final Node node;
+ private Node node;
private final SplitNode parent;
private final int parentBranch;
@@ -55,6 +55,17 @@
}
/**
+ * Method to set the node where an instance is routed/filtered through the decision tree model for testing and
+ * training. The method is expected to be used when the original FoundNode object had null node property.
+ * This is to add a reference to a newly established node object.
+ *
+ * @param node the node reference to be inserted
+ */
+ void setNode(Node node) {
+ this.node = node;
+ }
+
+ /**
* Method to get the parent of the node where an instance is routed/filtered through the decision tree model for
* testing and training
*
diff --git a/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ModelAggregatorProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ModelAggregatorProcessor.java
index 967682a..b0ce82e 100644
--- a/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ModelAggregatorProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ModelAggregatorProcessor.java
@@ -417,6 +417,7 @@
if (leafNode == null) {
leafNode = newLearningNode(this.parallelismHint);
+ foundNode.setNode(leafNode);
foundNode.getParent().setChild(foundNode.getParentBranch(), leafNode);
activeLeafNodeCount++;
}