Revert "GEODE-3926: Lucene Query Exception is thrown if queries are executed in the middle of reindexing a region (#1742)"
This reverts commit 75ae584
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/InternalLuceneIndex.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/InternalLuceneIndex.java
index d308a16..74e4ac8 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/InternalLuceneIndex.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/InternalLuceneIndex.java
@@ -39,5 +39,4 @@
void initialize();
- boolean isIndexAvailable(int id);
}
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationInProgressException.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationInProgressException.java
deleted file mode 100644
index 9c58ba5..0000000
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexCreationInProgressException.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.cache.lucene.internal;
-
-import org.apache.geode.GemFireException;
-
-public class LuceneIndexCreationInProgressException extends GemFireException {
- public LuceneIndexCreationInProgressException(String message) {
- super(message);
- }
-}
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexForPartitionedRegion.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexForPartitionedRegion.java
index 247e1b4..577bdef 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexForPartitionedRegion.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneIndexForPartitionedRegion.java
@@ -16,7 +16,6 @@
package org.apache.geode.cache.lucene.internal;
import java.util.Set;
-import java.util.concurrent.ExecutorService;
import org.apache.geode.CancelException;
import org.apache.geode.cache.AttributesFactory;
@@ -50,11 +49,8 @@
public static final String FILES_REGION_SUFFIX = ".files";
- private final ExecutorService waitingThreadPoolFromDM;
-
public LuceneIndexForPartitionedRegion(String indexName, String regionPath, InternalCache cache) {
super(indexName, regionPath, cache);
- this.waitingThreadPoolFromDM = cache.getDistributionManager().getWaitingThreadPool();
final String statsName = indexName + "-" + regionPath;
this.fileSystemStats = new FileSystemStats(cache.getDistributedSystem(), statsName);
@@ -66,7 +62,7 @@
mapper = new HeterogeneousLuceneSerializer();
}
PartitionedRepositoryManager partitionedRepositoryManager =
- new PartitionedRepositoryManager(this, mapper, this.waitingThreadPoolFromDM);
+ new PartitionedRepositoryManager(this, mapper);
return partitionedRepositoryManager;
}
@@ -206,12 +202,6 @@
}
}
- @Override
- public boolean isIndexAvailable(int id) {
- PartitionedRegion fileAndChunkRegion = getFileAndChunkRegion();
- return fileAndChunkRegion.get(IndexRepositoryFactory.APACHE_GEODE_INDEX_COMPLETE, id) != null;
- }
-
private void destroyOnRemoteMembers() {
PartitionedRegion pr = (PartitionedRegion) getDataRegion();
DistributionManager dm = pr.getDistributionManager();
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneQueryImpl.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneQueryImpl.java
index 1026a83..6039af2 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneQueryImpl.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneQueryImpl.java
@@ -133,8 +133,6 @@
} catch (TransactionException e) {
// When function execution is run from server
throw new LuceneQueryException(LUCENE_QUERY_CANNOT_BE_EXECUTED_WITHIN_A_TRANSACTION);
- } catch (LuceneIndexCreationInProgressException e) {
- throw new LuceneQueryException("Lucene Index is not available, currently indexing");
}
return entries;
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneRawIndex.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneRawIndex.java
index 1416cab..d4168bd 100755
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneRawIndex.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneRawIndex.java
@@ -32,8 +32,8 @@
if (mapper == null) {
mapper = new HeterogeneousLuceneSerializer();
}
- RawLuceneRepositoryManager rawLuceneRepositoryManager = new RawLuceneRepositoryManager(this,
- mapper, cache.getDistributionManager().getWaitingThreadPool());
+ RawLuceneRepositoryManager rawLuceneRepositoryManager =
+ new RawLuceneRepositoryManager(this, mapper);
return rawLuceneRepositoryManager;
}
@@ -50,9 +50,4 @@
@Override
public void destroy(boolean initiator) {}
-
- @Override
- public boolean isIndexAvailable(int id) {
- return true;
- }
}
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneRegionListener.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneRegionListener.java
index a3f2764..7313a82 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneRegionListener.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneRegionListener.java
@@ -26,7 +26,6 @@
import org.apache.geode.cache.lucene.LuceneSerializer;
import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.cache.InternalRegionArguments;
-import org.apache.geode.internal.cache.PartitionedRegion;
import org.apache.geode.internal.cache.RegionListener;
public class LuceneRegionListener implements RegionListener {
@@ -109,7 +108,6 @@
if (region.getFullPath().equals(this.regionPath)
&& this.afterCreateInvoked.compareAndSet(false, true)) {
this.service.afterDataRegionCreated(this.luceneIndex);
- this.service.createLuceneIndexOnDataRegion((PartitionedRegion) region, luceneIndex);
}
}
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneServiceImpl.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneServiceImpl.java
index 5756d71..9d2bcd6 100644
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneServiceImpl.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/LuceneServiceImpl.java
@@ -164,7 +164,8 @@
if (!regionPath.startsWith("/")) {
regionPath = "/" + regionPath;
}
- return indexName + "#" + regionPath.replace('/', '_');
+ String name = indexName + "#" + regionPath.replace('/', '_');
+ return name;
}
public static String getUniqueIndexRegionName(String indexName, String regionPath,
@@ -252,13 +253,15 @@
throw new BucketNotFoundException(
"Bucket ID : " + primaryBucketId + " not found during lucene indexing");
}
- /**
- *
- * Calling getRepository will in turn call computeRepository
- * which is responsible for indexing the user region.
- *
- **/
- repositoryManager.getRepository(primaryBucketId);
+ if (!userBucket.isEmpty()) {
+ /**
+ *
+ * Calling getRepository will in turn call computeRepository
+ * which is responsible for indexing the user region.
+ *
+ **/
+ repositoryManager.getRepository(primaryBucketId);
+ }
} catch (BucketNotFoundException | PrimaryBucketException e) {
logger.debug("Bucket ID : " + primaryBucketId
+ " not found while saving to lucene index: " + e.getMessage(), e);
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManager.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManager.java
index e439293..f60f83b 100755
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManager.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManager.java
@@ -20,9 +20,6 @@
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ExecutorService;
-
-import org.apache.logging.log4j.Logger;
import org.apache.geode.InternalGemFireError;
import org.apache.geode.cache.Region;
@@ -35,11 +32,8 @@
import org.apache.geode.internal.cache.BucketRegion;
import org.apache.geode.internal.cache.PartitionedRegion;
import org.apache.geode.internal.cache.execute.InternalRegionFunctionContext;
-import org.apache.geode.internal.logging.LogService;
public class PartitionedRepositoryManager implements RepositoryManager {
- private final Logger logger = LogService.getLogger();
-
public static IndexRepositoryFactory indexRepositoryFactory = new IndexRepositoryFactory();
/**
* map of the parent bucket region to the index repository
@@ -60,14 +54,10 @@
protected volatile boolean closed;
private final CountDownLatch isDataRegionReady = new CountDownLatch(1);
- private final ExecutorService waitingThreadPoolFromDM;
-
- public PartitionedRepositoryManager(InternalLuceneIndex index, LuceneSerializer serializer,
- ExecutorService waitingThreadPool) {
+ public PartitionedRepositoryManager(InternalLuceneIndex index, LuceneSerializer serializer) {
this.index = index;
this.serializer = serializer;
this.closed = false;
- this.waitingThreadPoolFromDM = waitingThreadPool;
}
public void setUserRegionForRepositoryManager(PartitionedRegion userRegion) {
@@ -86,19 +76,7 @@
throw new BucketNotFoundException(
"User bucket was not found for region " + region + "bucket id " + bucketId);
} else {
- if (index.isIndexAvailable(userBucket.getId()) || userBucket.isEmpty()) {
- repos.add(getRepository(userBucket.getId()));
- } else {
- waitingThreadPoolFromDM.execute(() -> {
- try {
- getRepository(userBucket.getId());
- } catch (BucketNotFoundException | LuceneIndexDestroyedException e) {
- logger.debug("Lucene Index creation in progress.", e);
- }
- });
- throw new LuceneIndexCreationInProgressException(
- "Lucene Index creation in progress for bucket: " + userBucket.getId());
- }
+ repos.add(getRepository(userBucket.getId()));
}
}
diff --git a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManager.java b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManager.java
index 25a4678..0b38c45 100755
--- a/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManager.java
+++ b/geode-lucene/src/main/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManager.java
@@ -15,7 +15,6 @@
package org.apache.geode.cache.lucene.internal;
import java.io.IOException;
-import java.util.concurrent.ExecutorService;
import org.apache.geode.cache.lucene.LuceneSerializer;
import org.apache.geode.cache.lucene.internal.repository.IndexRepository;
@@ -25,9 +24,8 @@
public class RawLuceneRepositoryManager extends PartitionedRepositoryManager {
public static IndexRepositoryFactory indexRepositoryFactory = new RawIndexRepositoryFactory();
- public RawLuceneRepositoryManager(LuceneIndexImpl index, LuceneSerializer serializer,
- ExecutorService waitingThreadPool) {
- super(index, serializer, waitingThreadPool);
+ public RawLuceneRepositoryManager(LuceneIndexImpl index, LuceneSerializer serializer) {
+ super(index, serializer);
}
@Override
@@ -37,8 +35,15 @@
return repo;
}
- repo = computeRepository(bucketId);
- return repo;
+ try {
+ repo = computeRepository(bucketId, this.serializer, this.index, this.userRegion, repo);
+ return repo;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ throw new BucketNotFoundException(
+ "Colocated index buckets not found for bucket id " + bucketId);
}
@Override
diff --git a/geode-lucene/src/main/resources/org/apache/geode/internal/sanctioned-geode-lucene-serializables.txt b/geode-lucene/src/main/resources/org/apache/geode/internal/sanctioned-geode-lucene-serializables.txt
index 3a9117a..a13c06b 100755
--- a/geode-lucene/src/main/resources/org/apache/geode/internal/sanctioned-geode-lucene-serializables.txt
+++ b/geode-lucene/src/main/resources/org/apache/geode/internal/sanctioned-geode-lucene-serializables.txt
@@ -17,4 +17,3 @@
org/apache/geode/cache/lucene/internal/distributed/LuceneQueryFunction,true,1
org/apache/geode/cache/lucene/internal/distributed/WaitUntilFlushedFunction,true,1
org/apache/geode/cache/lucene/internal/results/LuceneGetPageFunction,true,1
-org/apache/geode/cache/lucene/internal/LuceneIndexCreationInProgressException,false
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesReindexDUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesReindexDUnitTest.java
index e25ca9a..75ed722 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesReindexDUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/LuceneQueriesReindexDUnitTest.java
@@ -86,7 +86,6 @@
ai1.checkException();
ai2.checkException();
- waitForFlushBeforeExecuteTextSearch(accessor, 60000);
executeTextSearch(accessor);
}
@@ -124,7 +123,6 @@
ai1.checkException();
ai2.checkException();
- waitForFlushBeforeExecuteTextSearch(accessor, 60000);
executeTextSearch(accessor);
}
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/RebalanceWithRedundancyWithRegionCreatedBeforeReindexDUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/RebalanceWithRedundancyWithRegionCreatedBeforeReindexDUnitTest.java
index 7b1f361..866dda1 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/RebalanceWithRedundancyWithRegionCreatedBeforeReindexDUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/RebalanceWithRedundancyWithRegionCreatedBeforeReindexDUnitTest.java
@@ -170,7 +170,6 @@
createIndexAndRebalance(regionTestType, createIndex, true);
- waitForFlushBeforeExecuteTextSearch(dataStore3, 60000);
executeTextSearch(dataStore3, "world", "text", NUM_BUCKETS);
}
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexForPartitionedRegionTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexForPartitionedRegionTest.java
index 3a36a94..9ebde2c 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexForPartitionedRegionTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexForPartitionedRegionTest.java
@@ -91,40 +91,6 @@
}
@Test
- public void indexIsAvailableReturnsFalseIfCompleteFileIsNotPresent() {
- String name = "indexName";
- String regionPath = "regionName";
- InternalCache cache = Fakes.cache();
- PartitionedRegion region = mock(PartitionedRegion.class);
- PartitionedRegion mockFileRegion = mock(PartitionedRegion.class);
- LuceneIndexForPartitionedRegion index =
- new LuceneIndexForPartitionedRegion(name, regionPath, cache);
- String fileRegionName = index.createFileRegionName();
- when(cache.getRegion(fileRegionName)).thenReturn(region);
- LuceneIndexForPartitionedRegion spy = spy(index);
- when(spy.getFileAndChunkRegion()).thenReturn(mockFileRegion);
- assertFalse(spy.isIndexAvailable(0));
- }
-
- @Test
- public void indexIsAvailableReturnsTrueIfCompleteFileIsPresent() {
- String name = "indexName";
- String regionPath = "regionName";
- InternalCache cache = Fakes.cache();
- PartitionedRegion region = mock(PartitionedRegion.class);
- PartitionedRegion mockFileRegion = mock(PartitionedRegion.class);
- LuceneIndexForPartitionedRegion index =
- new LuceneIndexForPartitionedRegion(name, regionPath, cache);
- String fileRegionName = index.createFileRegionName();
- when(cache.getRegion(fileRegionName)).thenReturn(region);
- LuceneIndexForPartitionedRegion spy = spy(index);
- when(spy.getFileAndChunkRegion()).thenReturn(mockFileRegion);
- when(mockFileRegion.get(IndexRepositoryFactory.APACHE_GEODE_INDEX_COMPLETE, 1))
- .thenReturn("SOMETHING IS PRESENT");
- assertTrue(spy.isIndexAvailable(1));
- }
-
- @Test
public void fileRegionExistsWhenFileRegionDoesNotExistShouldReturnFalse() {
String name = "indexName";
String regionPath = "regionName";
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexRecoveryHAIntegrationTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexRecoveryHAIntegrationTest.java
index 8cee1c9..0f67cb6 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexRecoveryHAIntegrationTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneIndexRecoveryHAIntegrationTest.java
@@ -19,7 +19,6 @@
import static org.junit.Assert.assertTrue;
import java.io.IOException;
-import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import org.apache.lucene.analysis.Analyzer;
@@ -92,8 +91,7 @@
userRegion.put("rebalance", "test");
service.waitUntilFlushed("index1", "userRegion", 30000, TimeUnit.MILLISECONDS);
- RepositoryManager manager = new PartitionedRepositoryManager((LuceneIndexImpl) index, mapper,
- Executors.newSingleThreadExecutor());
+ RepositoryManager manager = new PartitionedRepositoryManager((LuceneIndexImpl) index, mapper);
IndexRepository repo = manager.getRepository(userRegion, 0, null);
assertNotNull(repo);
@@ -108,8 +106,7 @@
userRegion = (PartitionedRegion) regionfactory.create("userRegion");
userRegion.put("rebalance", "test");
- manager = new PartitionedRepositoryManager((LuceneIndexImpl) index, mapper,
- Executors.newSingleThreadExecutor());
+ manager = new PartitionedRepositoryManager((LuceneIndexImpl) index, mapper);
IndexRepository newRepo = manager.getRepository(userRegion, 0, null);
Assert.assertNotEquals(newRepo, repo);
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneQueryImplJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneQueryImplJUnitTest.java
index e705148..a52330d 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneQueryImplJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneQueryImplJUnitTest.java
@@ -63,6 +63,7 @@
private CacheTransactionManager cacheTransactionManager;
+
@Before
public void createMocks() {
region = mock(Region.class);
@@ -168,5 +169,4 @@
assertEquals("value", element.getValue());
assertEquals(5, element.getScore(), 0.01);
}
-
}
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneServiceImplJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneServiceImplJUnitTest.java
index 8b09ff5..07c2d6c 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneServiceImplJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/LuceneServiceImplJUnitTest.java
@@ -32,7 +32,6 @@
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import org.apache.lucene.analysis.Analyzer;
@@ -53,7 +52,6 @@
import org.apache.geode.cache.lucene.LuceneIndexFactory;
import org.apache.geode.cache.lucene.LuceneSerializer;
import org.apache.geode.distributed.DistributedSystem;
-import org.apache.geode.distributed.internal.DistributionManager;
import org.apache.geode.internal.cache.GemFireCacheImpl;
import org.apache.geode.internal.cache.PartitionedRegion;
import org.apache.geode.internal.cache.PartitionedRegionDataStore;
@@ -125,9 +123,6 @@
when(((StatisticsFactory) ds).createAtomicStatistics(any(), anyString()))
.thenReturn(luceneIndexStats);
when(cache.getRegion(anyString())).thenReturn(region);
- when(cache.getDistributionManager()).thenReturn(mock(DistributionManager.class));
- when(cache.getDistributionManager().getWaitingThreadPool())
- .thenReturn(Executors.newSingleThreadExecutor());
RegionAttributes ratts = mock(RegionAttributes.class);
when(region.getAttributes()).thenReturn(ratts);
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManagerJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManagerJUnitTest.java
index a796563..b2c30b1 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManagerJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/PartitionedRepositoryManagerJUnitTest.java
@@ -29,20 +29,15 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.index.IndexWriter;
-import org.awaitility.Awaitility;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
@@ -99,7 +94,6 @@
protected LuceneIndexImpl indexForPR;
protected PartitionedRepositoryManager repoManager;
protected GemFireCacheImpl cache;
- private final Map<Integer, Boolean> isIndexAvailableMap = new HashMap<>();
@Before
public void setUp() {
@@ -148,14 +142,13 @@
when(prRoot.get("rid")).thenReturn(prConfig);
PowerMockito.mockStatic(PartitionedRegionHelper.class);
PowerMockito.when(PartitionedRegionHelper.getPRRoot(cache)).thenReturn(prRoot);
- repoManager = new PartitionedRepositoryManager(indexForPR, serializer,
- Executors.newSingleThreadExecutor());
+ repoManager = new PartitionedRepositoryManager(indexForPR, serializer);
repoManager.setUserRegionForRepositoryManager(userRegion);
repoManager.allowRepositoryComputation();
}
@Test
- public void getByKey() throws BucketNotFoundException {
+ public void getByKey() throws BucketNotFoundException, IOException {
setUpMockBucket(0);
setUpMockBucket(1);
@@ -237,9 +230,6 @@
setUpMockBucket(0);
setUpMockBucket(1);
- when(indexForPR.isIndexAvailable(0)).thenReturn(true);
- when(indexForPR.isIndexAvailable(1)).thenReturn(true);
-
Set<Integer> buckets = new LinkedHashSet<Integer>(Arrays.asList(0, 1));
InternalRegionFunctionContext ctx = Mockito.mock(InternalRegionFunctionContext.class);
when(ctx.getLocalBucketSet((any()))).thenReturn(buckets);
@@ -264,7 +254,6 @@
@Test(expected = BucketNotFoundException.class)
public void getMissingBucketByRegion() throws BucketNotFoundException {
setUpMockBucket(0);
- when(indexForPR.isIndexAvailable(0)).thenReturn(true);
Set<Integer> buckets = new LinkedHashSet<Integer>(Arrays.asList(0, 1));
@@ -273,67 +262,11 @@
repoManager.getRepositories(ctx);
}
- /**
- * Test that we get the expected exception when a user bucket is not indexed yet
- */
- @Test(expected = LuceneIndexCreationInProgressException.class)
- public void luceneIndexCreationInProgressExceptionExpectedIfIndexIsNotYetIndexed()
- throws BucketNotFoundException {
- setUpMockBucket(0);
-
- Set<Integer> buckets = new LinkedHashSet<Integer>(Arrays.asList(0, 1));
-
- InternalRegionFunctionContext ctx = Mockito.mock(InternalRegionFunctionContext.class);
- when(ctx.getLocalBucketSet((any()))).thenReturn(buckets);
- repoManager.getRepositories(ctx);
- }
-
- @Ignore
- @Test
- public void queryOnlyWhenIndexIsAvailable() throws Exception {
- setUpMockBucket(0);
- setUpMockBucket(1);
-
- when(indexForPR.isIndexAvailable(0)).thenReturn(true);
- when(indexForPR.isIndexAvailable(1)).thenReturn(true);
-
- Set<Integer> buckets = new LinkedHashSet<>(Arrays.asList(0, 1));
- InternalRegionFunctionContext ctx = Mockito.mock(InternalRegionFunctionContext.class);
- when(ctx.getLocalBucketSet((any()))).thenReturn(buckets);
-
- Awaitility.await().pollDelay(1, TimeUnit.SECONDS).pollInterval(1, TimeUnit.SECONDS)
- .atMost(500, TimeUnit.SECONDS).until(() -> {
- final Collection<IndexRepository> repositories = new HashSet<>();
- try {
- repositories.addAll(repoManager.getRepositories(ctx));
- } catch (BucketNotFoundException | LuceneIndexCreationInProgressException e) {
- }
- return repositories.size() == 2;
- });
-
- Iterator<IndexRepository> itr = repoManager.getRepositories(ctx).iterator();
- IndexRepositoryImpl repo0 = (IndexRepositoryImpl) itr.next();
- IndexRepositoryImpl repo1 = (IndexRepositoryImpl) itr.next();
-
- assertNotNull(repo0);
- assertNotNull(repo1);
- assertNotEquals(repo0, repo1);
-
- checkRepository(repo0, 0, 1);
- checkRepository(repo1, 0, 1);
- }
-
- protected void checkRepository(IndexRepositoryImpl repo0, int... bucketIds) {
+ protected void checkRepository(IndexRepositoryImpl repo0, int bucketId) {
IndexWriter writer0 = repo0.getWriter();
RegionDirectory dir0 = (RegionDirectory) writer0.getDirectory();
- boolean result = false;
- for (int bucketId : bucketIds) {
- BucketTargetingMap bucketTargetingMap =
- new BucketTargetingMap(fileAndChunkBuckets.get(bucketId), bucketId);
- result |= bucketTargetingMap.equals(dir0.getFileSystem().getFileAndChunkRegion());
- }
-
- assertTrue(result);
+ assertEquals(new BucketTargetingMap(fileAndChunkBuckets.get(bucketId), bucketId),
+ dir0.getFileSystem().getFileAndChunkRegion());
assertEquals(serializer, repo0.getSerializer());
}
diff --git a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManagerJUnitTest.java b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManagerJUnitTest.java
index 6284f36..a000d2f 100644
--- a/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManagerJUnitTest.java
+++ b/geode-lucene/src/test/java/org/apache/geode/cache/lucene/internal/RawLuceneRepositoryManagerJUnitTest.java
@@ -19,8 +19,6 @@
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.when;
-import java.util.concurrent.Executors;
-
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.Directory;
@@ -58,7 +56,6 @@
((RawLuceneRepositoryManager) repoManager).close();
}
- @Override
protected void createIndexAndRepoManager() {
LuceneServiceImpl.luceneIndexFactory = new LuceneRawIndexFactory();
@@ -69,8 +66,7 @@
when(indexForPR.getCache()).thenReturn(cache);
when(indexForPR.getRegionPath()).thenReturn("/testRegion");
when(indexForPR.withPersistence()).thenReturn(true);
- repoManager =
- new RawLuceneRepositoryManager(indexForPR, serializer, Executors.newSingleThreadExecutor());
+ repoManager = new RawLuceneRepositoryManager(indexForPR, serializer);
repoManager.setUserRegionForRepositoryManager(userRegion);
repoManager.allowRepositoryComputation();
}
@@ -82,7 +78,7 @@
}
@Override
- protected void checkRepository(IndexRepositoryImpl repo0, int... bucketId) {
+ protected void checkRepository(IndexRepositoryImpl repo0, int bucketId) {
IndexWriter writer0 = repo0.getWriter();
Directory dir0 = writer0.getDirectory();
assertTrue(dir0 instanceof NIOFSDirectory);
@@ -109,5 +105,4 @@
assertNotNull(repoManager.getRepository(userRegion, 0, null));
}
-
}