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);