OPENNLP-488 - applied patch from Jeff Zemerick to avoid NPE
git-svn-id: https://svn.apache.org/repos/asf/opennlp/trunk@1734199 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java
index 72556a8..71c2f77 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java
@@ -139,20 +139,22 @@
}
protected List<List<ComparablePredicate>> compressOutcomes(ComparablePredicate[] sorted) {
- ComparablePredicate cp = sorted[0];
List<List<ComparablePredicate>> outcomePatterns = new ArrayList<List<ComparablePredicate>>();
- List<ComparablePredicate> newGroup = new ArrayList<ComparablePredicate>();
- for (int i = 0; i < sorted.length; i++) {
- if (cp.compareTo(sorted[i]) == 0) {
- newGroup.add(sorted[i]);
- } else {
- cp = sorted[i];
+ if(sorted.length > 0) {
+ ComparablePredicate cp = sorted[0];
+ List<ComparablePredicate> newGroup = new ArrayList<ComparablePredicate>();
+ for (int i = 0; i < sorted.length; i++) {
+ if (cp.compareTo(sorted[i]) == 0) {
+ newGroup.add(sorted[i]);
+ } else {
+ cp = sorted[i];
+ outcomePatterns.add(newGroup);
+ newGroup = new ArrayList<ComparablePredicate>();
+ newGroup.add(sorted[i]);
+ }
+ }
outcomePatterns.add(newGroup);
- newGroup = new ArrayList<ComparablePredicate>();
- newGroup.add(sorted[i]);
- }
}
- outcomePatterns.add(newGroup);
return outcomePatterns;
}
}
diff --git a/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractDataIndexer.java b/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractDataIndexer.java
index a006e50..c1726f6 100644
--- a/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractDataIndexer.java
+++ b/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractDataIndexer.java
@@ -83,7 +83,8 @@
protected int sortAndMerge(List<ComparableEvent> eventsToCompare, boolean sort) {
int numUniqueEvents = 1;
numEvents = eventsToCompare.size();
- if (sort) {
+ if (sort && eventsToCompare.size() > 0) {
+
Collections.sort(eventsToCompare);
ComparableEvent ce = eventsToCompare.get(0);