This is an automated email from the ASF dual-hosted git repository.

nnag pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new 84d31b8  GEODE-4725: PdxReadSerialized reset
84d31b8 is described below

commit 84d31b853c080aeaaf12b5b9a1fe58edaa045928
Author: nabarun <[email protected]>
AuthorDate: Thu Feb 22 13:37:07 2018 -0800

    GEODE-4725: PdxReadSerialized reset
    
        * In the lucene event listener's process events method the flag 
pdxReadSerialized is reset to the initial value then to rather change it to 
false.
---
 .../geode/cache/lucene/internal/LuceneEventListener.java  |  3 ++-
 .../lucene/internal/LuceneEventListenerJUnitTest.java     | 15 +++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneEventListener.java
 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneEventListener.java
index 395a9b4..8033f9a 100644
--- 
a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneEventListener.java
+++ 
b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneEventListener.java
@@ -73,6 +73,7 @@ public class LuceneEventListener implements 
AsyncEventListener {
 
   protected boolean process(final List<AsyncEvent> events) {
     // Try to get a PDX instance if possible, rather than a deserialized object
+    boolean initialPdxReadSerializedFlag = DefaultQuery.getPdxReadSerialized();
     DefaultQuery.setPdxReadSerialized(true);
 
     Set<IndexRepository> affectedRepos = new HashSet<IndexRepository>();
@@ -111,7 +112,7 @@ public class LuceneEventListener implements 
AsyncEventListener {
     } catch (IOException e) {
       throw new InternalGemFireError("Unable to save to lucene index", e);
     } finally {
-      DefaultQuery.setPdxReadSerialized(false);
+      DefaultQuery.setPdxReadSerialized(initialPdxReadSerializedFlag);
     }
   }
 
diff --git 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneEventListenerJUnitTest.java
 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneEventListenerJUnitTest.java
index b0db54b..cc7caff 100644
--- 
a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneEventListenerJUnitTest.java
+++ 
b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneEventListenerJUnitTest.java
@@ -20,6 +20,7 @@ import static org.mockito.Mockito.*;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
@@ -34,6 +35,7 @@ import org.apache.geode.cache.Region;
 import org.apache.geode.cache.asyncqueue.AsyncEvent;
 import org.apache.geode.cache.lucene.internal.repository.IndexRepository;
 import org.apache.geode.cache.lucene.internal.repository.RepositoryManager;
+import org.apache.geode.cache.query.internal.DefaultQuery;
 import org.apache.geode.internal.cache.BucketNotFoundException;
 import org.apache.geode.internal.cache.EntrySnapshot;
 import org.apache.geode.test.junit.categories.UnitTest;
@@ -50,6 +52,19 @@ public class LuceneEventListenerJUnitTest {
   }
 
   @Test
+  public void 
pdxReadSerializedFlagShouldBeResetBackToOriginalValueAfterProcessingEvents() {
+    boolean originalPdxReadSerialized = DefaultQuery.getPdxReadSerialized();
+    try {
+      DefaultQuery.setPdxReadSerialized(true);
+      LuceneEventListener luceneEventListener = new LuceneEventListener(null);
+      luceneEventListener.process(new LinkedList());
+      assertTrue(DefaultQuery.getPdxReadSerialized());
+    } finally {
+      DefaultQuery.setPdxReadSerialized(originalPdxReadSerialized);
+    }
+  }
+
+  @Test
   public void testProcessBatch() throws Exception {
     RepositoryManager manager = Mockito.mock(RepositoryManager.class);
     IndexRepository repo1 = Mockito.mock(IndexRepository.class);

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to