You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ca...@apache.org on 2018/05/28 10:40:50 UTC

svn commit: r1832376 - in /jackrabbit/oak/trunk/oak-lucene/src: main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ExtractedTextCache.java test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ExtractedTextCacheTest.java

Author: catholicon
Date: Mon May 28 10:40:50 2018
New Revision: 1832376

URL: http://svn.apache.org/viewvc?rev=1832376&view=rev
Log:
OAK-7508: Text extraction timeout can lead to NPE

Modified:
    jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ExtractedTextCache.java
    jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ExtractedTextCacheTest.java

Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ExtractedTextCache.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ExtractedTextCache.java?rev=1832376&r1=1832375&r2=1832376&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ExtractedTextCache.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/ExtractedTextCache.java Mon May 28 10:40:50 2018
@@ -157,9 +157,12 @@ public class ExtractedTextCache {
         if (EXTRACT_FORGET_TIMEOUT) {
             return;
         }
+
         String id = blob.getContentIdentity();
-        timeoutMap.put(id, getText(extractedText));
-        storeTimeoutMap();
+        if (id != null) {
+            timeoutMap.put(id, getText(extractedText));
+            storeTimeoutMap();
+        }
     }
 
     private static String getText(ExtractedText text) {

Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ExtractedTextCacheTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ExtractedTextCacheTest.java?rev=1832376&r1=1832375&r2=1832376&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ExtractedTextCacheTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ExtractedTextCacheTest.java Mon May 28 10:40:50 2018
@@ -185,6 +185,17 @@ public class ExtractedTextCacheTest {
         assertEquals(1, cache.getStatsMBean().getTimeoutCount());
     }
 
+    @Test
+    public void nullContentIdentityBlob() throws Exception {
+        ExtractedTextCache cache = new ExtractedTextCache(0, 0);
+        Blob b = new IdBlob("hello", null);
+        cache.put(b, ExtractedText.ERROR);
+        assertNull(cache.get("/a", "foo", b, false));
+        cache.putTimeout(b, ExtractedText.ERROR);
+        assertNull("Cache returned non null text for blob with null content identity",
+                cache.get("/a", "foo", b, false));
+    }
+
     private static class IdBlob extends ArrayBasedBlob {
         final String id;