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>.