Author: tommaso
Date: Wed Mar  9 09:08:27 2016
New Revision: 1734199

URL: http://svn.apache.org/viewvc?rev=1734199&view=rev
Log:
OPENNLP-488 - applied patch from Jeff Zemerick to avoid NPE

Modified:
    
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java
    
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractDataIndexer.java

Modified: 
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java
URL: 
http://svn.apache.org/viewvc/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java?rev=1734199&r1=1734198&r2=1734199&view=diff
==============================================================================
--- 
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java
 (original)
+++ 
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/ml/maxent/io/GISModelWriter.java
 Wed Mar  9 09:08:27 2016
@@ -139,20 +139,22 @@ public abstract class GISModelWriter ext
   }
 
   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;
   }
 }

Modified: 
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractDataIndexer.java
URL: 
http://svn.apache.org/viewvc/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractDataIndexer.java?rev=1734199&r1=1734198&r2=1734199&view=diff
==============================================================================
--- 
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractDataIndexer.java
 (original)
+++ 
opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/ml/model/AbstractDataIndexer.java
 Wed Mar  9 09:08:27 2016
@@ -83,7 +83,8 @@ public abstract class AbstractDataIndexe
   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);


Reply via email to