You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ja...@apache.org on 2017/10/05 23:01:56 UTC
[geode] branch develop updated (24dc3a6 -> bdd3f77)
This is an automated email from the ASF dual-hosted git repository.
jasonhuynh pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git.
from 24dc3a6 GEODE-3760 uncaught exception in shunned member removal thread
new 13143fb GEODE-3736: CompactRangeIndex getSizeEstimate should not throw ClassCastExceptions
new 319fd6f SpotlessApply and added comment into test describing when getSizeEstimate is called
new bdd3f77 Organized imports
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../query/internal/index/CompactRangeIndex.java | 5 ++
.../query/dunit/CorruptedIndexIntegrationTest.java | 29 +-----------
.../CompactRangeIndexQueryIntegrationTest.java | 54 ++++++++++++++--------
3 files changed, 43 insertions(+), 45 deletions(-)
--
To stop receiving notification emails like this one, please contact
['"commits@geode.apache.org" <co...@geode.apache.org>'].
[geode] 03/03: Organized imports
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jasonhuynh pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
commit bdd3f7748569cf91e71e6e5beef41724afab3a87
Author: Jason Huynh <hu...@gmail.com>
AuthorDate: Thu Oct 5 11:45:43 2017 -0700
Organized imports
---
.../index/CompactRangeIndexQueryIntegrationTest.java | 19 ++-----------------
1 file changed, 2 insertions(+), 17 deletions(-)
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/CompactRangeIndexQueryIntegrationTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/CompactRangeIndexQueryIntegrationTest.java
index ed9d8fb..37dd6f8 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/CompactRangeIndexQueryIntegrationTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/CompactRangeIndexQueryIntegrationTest.java
@@ -14,7 +14,8 @@
*/
package org.apache.geode.cache.query.internal.index;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import java.util.HashMap;
import java.util.Map;
@@ -27,27 +28,11 @@ import org.apache.geode.cache.Cache;
import org.apache.geode.cache.DataPolicy;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.RegionShortcut;
-import org.apache.geode.cache.client.internal.Op;
-import org.apache.geode.cache.query.CacheUtils;
-import org.apache.geode.cache.query.Index;
import org.apache.geode.cache.query.Query;
import org.apache.geode.cache.query.QueryService;
import org.apache.geode.cache.query.SelectResults;
import org.apache.geode.cache.query.data.Portfolio;
import org.apache.geode.cache.query.data.PortfolioPdx;
-
-import org.apache.geode.cache.query.dunit.CorruptedIndexIntegrationTest;
-import org.apache.geode.cache.query.internal.QueryObserverHolder;
-import org.apache.geode.cache.query.internal.index.CompactRangeIndex;
-import org.apache.geode.cache.query.internal.index.IndexProtocol;
-import org.apache.geode.internal.cache.LocalRegion;
-import org.apache.geode.internal.cache.RegionEntry;
-import org.apache.geode.test.dunit.Host;
-import org.apache.geode.test.dunit.Invoke;
-import org.apache.geode.test.dunit.SerializableRunnable;
-import org.apache.geode.test.dunit.VM;
-import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase;
-import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.IntegrationTest;
import org.apache.geode.test.junit.rules.ServerStarterRule;
--
To stop receiving notification emails like this one, please contact
"commits@geode.apache.org" <co...@geode.apache.org>.
[geode] 01/03: GEODE-3736: CompactRangeIndex getSizeEstimate should
not throw ClassCastExceptions
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jasonhuynh pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
commit 13143fb481b9b6fd66da73a3787684cc555ba1ad
Author: Jason Huynh <hu...@gmail.com>
AuthorDate: Wed Oct 4 11:08:47 2017 -0700
GEODE-3736: CompactRangeIndex getSizeEstimate should not throw ClassCastExceptions
* Minor refactor of CorruptedIndexIntegrationTest
* Refactored CompactRangeIndexQueryIntegrationTest to use ServerStarterRule
---
.../query/internal/index/CompactRangeIndex.java | 5 +++
.../query/dunit/CorruptedIndexIntegrationTest.java | 29 ++-------------
.../CompactRangeIndexQueryIntegrationTest.java | 41 ++++++++++++++++++++--
3 files changed, 45 insertions(+), 30 deletions(-)
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
index ad4f3a1..2cb7857 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
@@ -429,6 +429,11 @@ public class CompactRangeIndex extends AbstractIndex {
}
break;
}
+ } catch (ClassCastException e) {
+ //no values will match in this index because the key types are not the same
+ //This means that there will be 0 results and it will be fast to use this index
+ //because it has filtered everything out
+ return 0;
} catch (EntryDestroyedException ignore) {
return Integer.MAX_VALUE;
} finally {
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/dunit/CorruptedIndexIntegrationTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/dunit/CorruptedIndexIntegrationTest.java
index b7a3742..64ff11e 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/dunit/CorruptedIndexIntegrationTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/dunit/CorruptedIndexIntegrationTest.java
@@ -63,14 +63,11 @@ public class CorruptedIndexIntegrationTest extends JUnit4CacheTestCase {
IntStream.rangeClosed(1, 3).forEach(i -> region.put(i, new Portfolio(i)));
-
assertEquals("Uncorrupted index must have all the entries", 3,
idIndex.getStatistics().getNumberOfValues());
assertEquals("Corrupted index should not have indexed any entries", 0,
exceptionIndex.getStatistics().getNumberOfValues());
-
SelectResults results = (SelectResults) queryService.newQuery(queryString).execute();
-
assertEquals("Query execution must be successful ", 1, results.size());
}
@@ -100,9 +97,7 @@ public class CorruptedIndexIntegrationTest extends JUnit4CacheTestCase {
assertEquals("Uncorrupted index must have all the entries ", 3,
idIndex.getStatistics().getNumberOfValues());
-
SelectResults results = (SelectResults) queryService.newQuery(queryString).execute();
-
assertEquals("Query execution must be successful ", 1, results.size());
}
@@ -155,12 +150,9 @@ public class CorruptedIndexIntegrationTest extends JUnit4CacheTestCase {
map2.put("APPL", 3);
map2.put("AOL", "hello");
p2.positions = map2;
-
region.put(2, p2);
assertEquals("Put must be successful", 2, region.size());
-
-
assertEquals("Index must be invalid at this point ", false, keyIndex1.isValid());
QueryObserverImpl observer = new QueryObserverImpl();
@@ -170,12 +162,9 @@ public class CorruptedIndexIntegrationTest extends JUnit4CacheTestCase {
.newQuery(
"select * from /portfolio p where p.positions['AOL'] = 'hello' OR p.positions['IBM'] = 2")
.execute();
-
assertEquals("Correct results expected from the query execution ", 2, results.size());
-
assertEquals("No index must be used while executing the query ", 0,
observer.indexesUsed.size());
-
}
@Test
@@ -203,7 +192,6 @@ public class CorruptedIndexIntegrationTest extends JUnit4CacheTestCase {
map2.put("APPL", 3);
map2.put("AOL", "hello");
p2.positions = map2;
-
region.put(2, p2);
assertEquals("Put must be successful", 2, region.size());
@@ -226,12 +214,9 @@ public class CorruptedIndexIntegrationTest extends JUnit4CacheTestCase {
.newQuery(
"select * from /portfolio p where p.positions['AOL'] = 'hello' OR p.positions['IBM'] = 2")
.execute();
-
assertEquals("Current results expected from the query execution ", 2, results.size());
-
assertEquals("No index must be used while executing the query ", 0,
observer.indexesUsed.size());
-
}
@Test
@@ -240,7 +225,6 @@ public class CorruptedIndexIntegrationTest extends JUnit4CacheTestCase {
String regionName = "portfolio";
String INDEX_NAME = "key_index1";
-
Cache cache = getCache();
Region region =
cache.createRegionFactory().setDataPolicy(DataPolicy.PARTITION).create(regionName);
@@ -258,19 +242,13 @@ public class CorruptedIndexIntegrationTest extends JUnit4CacheTestCase {
map2.put("APPL", 3);
map2.put("AOL", "hello");
p2.positions = map2;
-
region.put(2, p2);
assertEquals("Put must be successful", 2, region.size());
QueryService queryService = cache.getQueryService();
-
- try {
- Index keyIndex1 = queryService.createIndex(INDEX_NAME, "positions[*]", "/portfolio");
- assertEquals("Index must be valid", true, keyIndex1.isValid());
- } catch (Exception exception) {
- fail();
- }
+ Index keyIndex1 = queryService.createIndex(INDEX_NAME, "positions[*]", "/portfolio");
+ assertEquals("Index must be valid", true, keyIndex1.isValid());
QueryObserverImpl observer = new QueryObserverImpl();
QueryObserverHolder.setInstance(observer);
@@ -279,11 +257,8 @@ public class CorruptedIndexIntegrationTest extends JUnit4CacheTestCase {
.newQuery(
"select * from /portfolio p where p.positions['AOL'] = 'hello' OR p.positions['IBM'] = 2")
.execute();
-
assertEquals("Current results expected from the query execution ", 2, results.size());
-
assertEquals("Index must be used while executing the query ", 2, observer.indexesUsed.size());
-
}
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/CompactRangeIndexQueryIntegrationTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/CompactRangeIndexQueryIntegrationTest.java
index 15a8c55..e970e7d 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/CompactRangeIndexQueryIntegrationTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/CompactRangeIndexQueryIntegrationTest.java
@@ -19,10 +19,12 @@ import static org.junit.Assert.*;
import java.util.HashMap;
import java.util.Map;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.apache.geode.cache.Cache;
+import org.apache.geode.cache.DataPolicy;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.RegionShortcut;
import org.apache.geode.cache.client.internal.Op;
@@ -31,8 +33,11 @@ import org.apache.geode.cache.query.Index;
import org.apache.geode.cache.query.Query;
import org.apache.geode.cache.query.QueryService;
import org.apache.geode.cache.query.SelectResults;
+import org.apache.geode.cache.query.data.Portfolio;
import org.apache.geode.cache.query.data.PortfolioPdx;
+import org.apache.geode.cache.query.dunit.CorruptedIndexIntegrationTest;
+import org.apache.geode.cache.query.internal.QueryObserverHolder;
import org.apache.geode.cache.query.internal.index.CompactRangeIndex;
import org.apache.geode.cache.query.internal.index.IndexProtocol;
import org.apache.geode.internal.cache.LocalRegion;
@@ -44,14 +49,18 @@ import org.apache.geode.test.dunit.VM;
import org.apache.geode.test.dunit.cache.internal.JUnit4CacheTestCase;
import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.IntegrationTest;
+import org.apache.geode.test.junit.rules.ServerStarterRule;
@Category(IntegrationTest.class)
public class CompactRangeIndexQueryIntegrationTest {
+ @Rule
+ public ServerStarterRule serverStarterRule = new ServerStarterRule().withAutoStart();
+
@Test
public void multipleNotEqualsClausesOnAPartitionedRegionShouldReturnCorrectResults()
throws Exception {
- Cache cache = CacheUtils.getCache();
+ Cache cache = serverStarterRule.getCache();
Region region = cache.createRegionFactory(RegionShortcut.PARTITION).create("portfolios");
int numMatching = 10;
QueryService qs = cache.getQueryService();
@@ -73,8 +82,7 @@ public class CompactRangeIndexQueryIntegrationTest {
@Test
public void whenAuxFilterWithAnIterableFilterShouldNotCombineFiltersIntoAndJunction()
throws Exception {
- CacheUtils.startCache();
- Cache cache = CacheUtils.getCache();
+ Cache cache = serverStarterRule.getCache();
Region region = cache.createRegionFactory(RegionShortcut.PARTITION).create("ExampleRegion");
QueryService qs = cache.getQueryService();
qs.createIndex("ExampleRegionIndex", "er['codeNumber','origin']", "/ExampleRegion er");
@@ -98,4 +106,31 @@ public class CompactRangeIndexQueryIntegrationTest {
SelectResults rs = (SelectResults) q.execute();
assertEquals(4, rs.size());
}
+
+ @Test
+ public void getSizeEstimateShouldNotThrowClassCastException()
+ throws Exception {
+ String regionName = "portfolio";
+
+ Cache cache = serverStarterRule.getCache();
+ assertNotNull(cache);
+ Region region = cache.createRegionFactory().setDataPolicy(DataPolicy.REPLICATE).create(regionName);
+
+ Portfolio p = new Portfolio(1, 2);
+ region.put(1, p);
+
+ Portfolio p2 = new Portfolio(3, 4);
+ region.put(2, p2);
+
+ QueryService queryService = cache.getQueryService();
+ CompactRangeIndex statusIndex = (CompactRangeIndex)queryService.createIndex("statusIndex", "status", "/portfolio");
+ CompactRangeIndex idIndex = (CompactRangeIndex)queryService.createIndex("idIndex", "ID", "/portfolio");
+
+ SelectResults results = (SelectResults) queryService
+ .newQuery(
+ "select * from /portfolio where status = 4 AND ID = 'StringID'")
+ .execute();
+
+ assertNotNull(results);
+ }
}
--
To stop receiving notification emails like this one, please contact
"commits@geode.apache.org" <co...@geode.apache.org>.
[geode] 02/03: SpotlessApply and added comment into test describing
when getSizeEstimate is called
Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jasonhuynh pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
commit 319fd6f4ddf0ffa238661d53f7a7c5b238ff5bc2
Author: Jason Huynh <hu...@gmail.com>
AuthorDate: Wed Oct 4 11:31:05 2017 -0700
SpotlessApply and added comment into test describing when getSizeEstimate is called
---
.../query/internal/index/CompactRangeIndex.java | 6 +++---
.../index/CompactRangeIndexQueryIntegrationTest.java | 20 +++++++++-----------
2 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
index 2cb7857..7031532 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/CompactRangeIndex.java
@@ -430,9 +430,9 @@ public class CompactRangeIndex extends AbstractIndex {
break;
}
} catch (ClassCastException e) {
- //no values will match in this index because the key types are not the same
- //This means that there will be 0 results and it will be fast to use this index
- //because it has filtered everything out
+ // no values will match in this index because the key types are not the same
+ // This means that there will be 0 results and it will be fast to use this index
+ // because it has filtered everything out
return 0;
} catch (EntryDestroyedException ignore) {
return Integer.MAX_VALUE;
diff --git a/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/CompactRangeIndexQueryIntegrationTest.java b/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/CompactRangeIndexQueryIntegrationTest.java
index e970e7d..ed9d8fb 100644
--- a/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/CompactRangeIndexQueryIntegrationTest.java
+++ b/geode-core/src/test/java/org/apache/geode/cache/query/internal/index/CompactRangeIndexQueryIntegrationTest.java
@@ -108,28 +108,26 @@ public class CompactRangeIndexQueryIntegrationTest {
}
@Test
- public void getSizeEstimateShouldNotThrowClassCastException()
- throws Exception {
+ // getSizeEstimate will be called only when having a choice between two indexes
+ public void getSizeEstimateShouldNotThrowClassCastException() throws Exception {
String regionName = "portfolio";
Cache cache = serverStarterRule.getCache();
assertNotNull(cache);
- Region region = cache.createRegionFactory().setDataPolicy(DataPolicy.REPLICATE).create(regionName);
+ Region region =
+ cache.createRegionFactory().setDataPolicy(DataPolicy.REPLICATE).create(regionName);
- Portfolio p = new Portfolio(1, 2);
+ Portfolio p = new Portfolio(1);
region.put(1, p);
-
- Portfolio p2 = new Portfolio(3, 4);
+ Portfolio p2 = new Portfolio(3);
region.put(2, p2);
QueryService queryService = cache.getQueryService();
- CompactRangeIndex statusIndex = (CompactRangeIndex)queryService.createIndex("statusIndex", "status", "/portfolio");
- CompactRangeIndex idIndex = (CompactRangeIndex)queryService.createIndex("idIndex", "ID", "/portfolio");
+ queryService.createIndex("statusIndex", "status", "/portfolio");
+ queryService.createIndex("idIndex", "ID", "/portfolio");
SelectResults results = (SelectResults) queryService
- .newQuery(
- "select * from /portfolio where status = 4 AND ID = 'StringID'")
- .execute();
+ .newQuery("select * from /portfolio where status = 4 AND ID = 'StringID'").execute();
assertNotNull(results);
}
--
To stop receiving notification emails like this one, please contact
"commits@geode.apache.org" <co...@geode.apache.org>.