You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2017/03/01 00:14:27 UTC
[28/34] geode git commit: GEODE-2545: NPE during lucene query
execution when cache is closing or region is destroyed
GEODE-2545: NPE during lucene query execution when cache is closing or region is destroyed
* Throw an InternalFunctionTargetInvocationException if executing a query while cache is closing
Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/c4a5ab28
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/c4a5ab28
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/c4a5ab28
Branch: refs/heads/GEODE-4160-mockito
Commit: c4a5ab284baba371418cb7a389cb0f327d8becdc
Parents: 8ff2fd4
Author: Jason Huynh <hu...@gmail.com>
Authored: Mon Feb 27 10:02:23 2017 -0800
Committer: Jason Huynh <hu...@gmail.com>
Committed: Mon Feb 27 10:02:23 2017 -0800
----------------------------------------------------------------------
.../distributed/LuceneQueryFunction.java | 4 ++++
.../LuceneQueryFunctionJUnitTest.java | 25 +++++++++-----------
2 files changed, 15 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/geode/blob/c4a5ab28/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunction.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunction.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunction.java
index e0a0a22..dd70480 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunction.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunction.java
@@ -75,6 +75,10 @@ public class LuceneQueryFunction implements Function, InternalEntity {
LuceneService service = LuceneServiceProvider.get(region.getCache());
LuceneIndexImpl index =
(LuceneIndexImpl) service.getIndex(searchContext.getIndexName(), region.getFullPath());
+ if (index == null) {
+ throw new InternalFunctionInvocationTargetException(
+ "Index for Region:" + region.getFullPath() + " was not found");
+ }
RepositoryManager repoManager = index.getRepositoryManager();
LuceneIndexStats stats = index.getIndexStats();
http://git-wip-us.apache.org/repos/asf/geode/blob/c4a5ab28/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunctionJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunctionJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunctionJUnitTest.java
index 0d06cab..6a9af9b 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunctionJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunctionJUnitTest.java
@@ -208,20 +208,17 @@ public class LuceneQueryFunctionJUnitTest {
function.execute(mockContext);
}
- // Disabled currently as we are retrying the function if a bucket is not found
- // @Test(expected = FunctionException.class)
- // public void testBucketNotFound() throws Exception {
- // when(mockContext.getDataSet()).thenReturn(mockRegion);
- // when(mockContext.getArguments()).thenReturn(searchArgs);
- // when(mockContext.<TopEntriesCollector>getResultSender()).thenReturn(mockResultSender);
- // when(mockRepoManager.getRepositories(eq(mockContext)))
- // .thenThrow(new BucketNotFoundException(""));
- // LuceneQueryFunction function = new LuceneQueryFunction();
- //
- // function.execute(mockContext);
- //
- // verify(mockResultSender).sendException(any(BucketNotFoundException.class));
- // }
+ @Test(expected = FunctionException.class)
+ public void whenServiceReturnsNullIndexDuringQueryExecutionFunctionExceptionShouldBeThrown()
+ throws Exception {
+ when(mockContext.getDataSet()).thenReturn(mockRegion);
+ when(mockContext.getArguments()).thenReturn(searchArgs);
+ LuceneQueryFunction function = new LuceneQueryFunction();
+
+ when(mockService.getIndex(eq("indexName"), eq(regionPath))).thenReturn(null);
+
+ function.execute(mockContext);
+ }
@Test(expected = FunctionException.class)
public void testReduceError() throws Exception {