Fix Integer.compareUnsigned code to work with Java 1.7
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/MultiLevelSkipListReader.java b/lucene/core/src/java/org/apache/lucene/codecs/MultiLevelSkipListReader.java
index c937886..71e0489 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/MultiLevelSkipListReader.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/MultiLevelSkipListReader.java
@@ -145,7 +145,12 @@
     
     return numSkipped[0] - skipInterval[0] - 1;
   }
-  
+
+  // Java 1.8 adds this Integer.compareUnsigned method, but we are Java 1.7 here:
+  private static int Integer_compareUnsigned(int x, int y) {
+    return Integer.compare(x + Integer.MIN_VALUE, y + Integer.MIN_VALUE);
+  }
+
   private boolean loadNextSkip(int level) throws IOException {
     // we have to skip, the target document is greater than the current
     // skip list entry        
@@ -154,7 +159,7 @@
     numSkipped[level] += skipInterval[level];
 
     // numSkipped may overflow a signed int, so compare as unsigned.
-    if (Integer.compareUnsigned(numSkipped[level], docCount) > 0) {
+    if (Integer_compareUnsigned(numSkipped[level], docCount) > 0) {
       // this skip list is exhausted
       skipDoc[level] = Integer.MAX_VALUE;
       if (numberOfSkipLevels > level) numberOfSkipLevels = level;