Fixed major lazy loading bug in WithinSpans

Change-Id: I67f1cfb0c5fa2660c790bc9f3988a3db0d24af95
diff --git a/Changes b/Changes
index 250b625..d4676e8 100644
--- a/Changes
+++ b/Changes
@@ -1,4 +1,4 @@
-0.55.4 2016-02-25
+0.55.4 2016-04-21
         - [bugfix] Wrap <base/s=t> boundaries around right extended queries
 	  (diewald)
 	- [bugfix] Lazy loading bug in WithinSpans (diewald)
diff --git a/src/main/java/de/ids_mannheim/korap/KrillIndex.java b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
index 7338472..1ed2b33 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillIndex.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
@@ -114,7 +114,7 @@
     private final static Logger log = LoggerFactory.getLogger(KrillIndex.class);
 
     // This advices the java compiler to ignore all loggings
-    public static final boolean DEBUG = true;
+    public static final boolean DEBUG = false;
 
     // TODO: Use configuration instead.
     // Last line of defense against DOS
@@ -1361,11 +1361,11 @@
 
                     if (DEBUG) {
                         if (match.getDocID() != null)
-                            log.trace("I've got a match in {} of {}",
-                                    match.getDocID(), count);
+                            log.trace("With DocID: I've got 1 match of {} in {}",
+                                      count, match.getDocID());
                         else
-                            log.trace("I've got a match in {} of {}",
-                                    match.getUID(), count);
+                            log.trace("With UID: I've got 1 match of {} in {}",
+                                      count, match.getUID());
                     };
 
                     atomicMatches.add(match);
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/WithinSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/WithinSpans.java
index 539c331..63c665e 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/WithinSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/WithinSpans.java
@@ -655,7 +655,6 @@
 
         if (this.embeddedStart == -1) {
             this.embeddedStart = this.embeddedSpans.start();
-            this.embeddedEnd = this.embeddedSpans.end();
         };
 
         this.wrapEnd = -1;
@@ -687,6 +686,10 @@
             };
         };
 
+        if (this.embeddedEnd == -1) {
+            this.embeddedEnd = this.embeddedSpans.end();
+        };
+
         // Now check correctly
         byte currentCase = this.withinCase();
 
@@ -935,6 +938,15 @@
     // Return case number
     private byte withinCase () {
 
+        if (DEBUG) {
+            log.trace(">>>>>>>>>>>>>> {}-{}|{}-{}",
+                      this.wrapStart,
+                      this.wrapSpans.end(),
+                      this.embeddedStart,
+                      this.embeddedSpans.end()
+                      );
+        };
+
         // case 1-5
         if (this.wrapStart > this.embeddedStart) {
 
diff --git a/src/main/java/de/ids_mannheim/korap/response/Match.java b/src/main/java/de/ids_mannheim/korap/response/Match.java
index 922f9ae..4bb289a 100644
--- a/src/main/java/de/ids_mannheim/korap/response/Match.java
+++ b/src/main/java/de/ids_mannheim/korap/response/Match.java
@@ -251,7 +251,11 @@
                     // TODO: This may be decidable by PTI!
                     if (unsignedByte(number) <= 128 && start >= this.getStartPos()
                             && end <= this.getEndPos()) {
-                        log.trace("Add highlight of class {}!", unsignedByte(number));
+
+                        if (DEBUG) {
+                            log.trace("Add highlight of class {}!", unsignedByte(number));
+                        };
+
                         this.addHighlight(start, end - 1, number);
                     }
                     else if (DEBUG) {
diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties
index b8bf604..5fed33b 100644
--- a/src/main/resources/log4j.properties
+++ b/src/main/resources/log4j.properties
@@ -1,4 +1,4 @@
-# log4j.rootLogger = ERROR, stdout
+log4j.rootLogger = ERROR, stdout
 
 # Queries:
 # log4j.logger.de.ids_mannheim.korap.query.SpanNextQuery = TRACE, stdout
@@ -28,9 +28,9 @@
 # log4j.logger.de.ids_mannheim.korap.response.Match = TRACE, stdout
 
 # Index:
-log4j.logger.de.ids_mannheim.korap.KrillIndex = TRACE, stdout
-log4j.logger.de.ids_mannheim.korap.index.PositionsToOffset = TRACE, stdout
-log4j.logger.de.ids_mannheim.korap.index.MultiTermTokenStream = TRACE, stdout
+# log4j.logger.de.ids_mannheim.korap.KrillIndex = TRACE, stdout
+# log4j.logger.de.ids_mannheim.korap.index.PositionsToOffset = TRACE, stdout
+# log4j.logger.de.ids_mannheim.korap.index.MultiTermTokenStream = TRACE, stdout
 
 # Tests:
 # log4j.logger.de.ids_mannheim.korap.index.TestSegmentIndex = TRACE, stdout
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestSpanExpansionIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestSpanExpansionIndex.java
index ee6c20b..423645e 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestSpanExpansionIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestSpanExpansionIndex.java
@@ -31,14 +31,12 @@
     Result kr;
     KrillIndex ki;
 
-
     public TestSpanExpansionIndex () throws IOException {
         ki = new KrillIndex();
         ki.addDoc(getClass().getResourceAsStream("/wiki/00001.json.gz"), true);
         ki.commit();
     }
 
-
     /**
      * Left and right expansions
      * */
@@ -385,10 +383,10 @@
         assertEquals("[ca]b",kr.getMatch(1).getSnippetBrackets());
         assertEquals("[cab]",kr.getMatch(2).getSnippetBrackets());
         assertEquals("[c]e",kr.getMatch(3).getSnippetBrackets());
-        /*
+
         assertEquals("[ce]",kr.getMatch(4).getSnippetBrackets());
         assertEquals(5, kr.getTotalResults());
-        */
+
         sq = kq.builder().tag("base/s:t").toQuery();
         assertEquals(sq.toString(),"<base:base/s:t />");
         kr = ki.search(sq, (short) 5);