Fixed empty DocIdSetIterator
Change-Id: I322b10563b92898ce662788277761c356eac9221
diff --git a/src/main/java/de/ids_mannheim/korap/cache/VirtualCorpusCache.java b/src/main/java/de/ids_mannheim/korap/cache/VirtualCorpusCache.java
index 6f93974..e1bef61 100644
--- a/src/main/java/de/ids_mannheim/korap/cache/VirtualCorpusCache.java
+++ b/src/main/java/de/ids_mannheim/korap/cache/VirtualCorpusCache.java
@@ -16,6 +16,8 @@
import java.util.regex.Pattern;
import org.apache.lucene.index.LeafReaderContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import de.ids_mannheim.korap.IndexInfo;
import de.ids_mannheim.korap.Krill;
@@ -33,6 +35,9 @@
*/
public class VirtualCorpusCache {
+ public final static Logger log = LoggerFactory
+ .getLogger(VirtualCorpusCache.class);
+
public static Pattern vcNamePattern = Pattern.compile("[a-zA-Z0-9]+[a-zA-Z_0-9-.]+");
public static String CACHE_LOCATION = "vc-cache";
@@ -150,7 +155,7 @@
return docBitsSupplier.supplyDocBits(context,
context.reader().getLiveDocs());
}
- catch (IOException | QueryException e) {
+ catch (Exception e) {
throw new RuntimeException(e);
}
});
diff --git a/src/main/java/de/ids_mannheim/korap/collection/VirtualCorpusFilter.java b/src/main/java/de/ids_mannheim/korap/collection/VirtualCorpusFilter.java
index 4d7d9aa..15f9ec6 100644
--- a/src/main/java/de/ids_mannheim/korap/collection/VirtualCorpusFilter.java
+++ b/src/main/java/de/ids_mannheim/korap/collection/VirtualCorpusFilter.java
@@ -4,6 +4,7 @@
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.search.DocIdSet;
+import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.Filter;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.FixedBitSet;
@@ -96,7 +97,10 @@
}
}
else {
- bitset.or(docIdSet.iterator());
+ DocIdSetIterator docIdSetIterator = docIdSet.iterator();
+ if (docIdSetIterator != null) {
+ bitset.or(docIdSetIterator);
+ }
if (cbi.isNegative()) {
bitset.flip(0, maxDoc);
}