You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bo...@apache.org on 2018/10/30 18:20:03 UTC
[geode] branch develop updated: GEODE-5917: Modified instanceof to
check for CachedDeserializable
This is an automated email from the ASF dual-hosted git repository.
boglesby 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 2531e5f GEODE-5917: Modified instanceof to check for CachedDeserializable
2531e5f is described below
commit 2531e5fbe6fb9a374120449c1e0eeaeefccf78c6
Author: Barry Oglesby <bo...@users.noreply.github.com>
AuthorDate: Tue Oct 30 11:19:50 2018 -0700
GEODE-5917: Modified instanceof to check for CachedDeserializable
---
.../geode/cache/query/dunit/PDXQueryTestBase.java | 2 +-
.../geode/cache/query/dunit/PdxQueryDUnitTest.java | 41 ++++++++++++++++++++++
.../geode/cache/query/internal/utils/PDXUtils.java | 5 +--
3 files changed, 45 insertions(+), 3 deletions(-)
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PDXQueryTestBase.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PDXQueryTestBase.java
index 47036df..84817ab 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PDXQueryTestBase.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PDXQueryTestBase.java
@@ -196,7 +196,7 @@ public abstract class PDXQueryTestBase extends JUnit4CacheTestCase {
}
protected void configAndStartBridgeServer(boolean isPr, boolean isAccessor) {
- configAndStartBridgeServer(false, false, false, null);
+ configAndStartBridgeServer(isPr, isAccessor, false, null);
}
protected void configAndStartBridgeServer(boolean isPr, boolean isAccessor, boolean asyncIndex,
diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxQueryDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxQueryDUnitTest.java
index 59e1bee..e87d67d 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxQueryDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/query/dunit/PdxQueryDUnitTest.java
@@ -15,6 +15,7 @@
package org.apache.geode.cache.query.dunit;
import static org.apache.geode.internal.Assert.fail;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -1481,6 +1482,46 @@ public class PdxQueryDUnitTest extends PDXQueryTestBase {
this.closeClient(vm0);
}
+ @Test
+ public void testPdxReadSerializedForPRSelectAllQuery() throws CacheException {
+ VM vm0 = VM.getVM(0);
+ VM vm1 = VM.getVM(1);
+
+ final int numPuts = 10;
+
+ vm0.invoke(new CacheSerializableRunnable("Create Bridge Server") {
+ public void run2() throws CacheException {
+ configAndStartBridgeServer(true, false);
+ GemFireCacheImpl cache = (GemFireCacheImpl) getCache();
+ cache.setReadSerializedForTest(true);
+ }
+ });
+
+ vm1.invoke(new CacheSerializableRunnable("Create Bridge Server") {
+ public void run2() throws CacheException {
+ configAndStartBridgeServer(true, false);
+ GemFireCacheImpl cache = (GemFireCacheImpl) getCache();
+ cache.setReadSerializedForTest(true);
+ }
+ });
+
+ vm0.invoke(() -> {
+ Region region = getRootRegion().getSubregion(regionName);
+ for (int i = 0; i < numPuts; i++) {
+ region.put("key-" + i, new TestObject(i, "val-" + i));
+ }
+ });
+
+ vm0.invoke(() -> {
+ QueryService qs = getCache().getQueryService();
+ Query query = qs.newQuery(queryString[1]);
+ SelectResults sr = (SelectResults) query.execute();
+ assertThat(sr.size()).isEqualTo(numPuts);
+ for (Object result : sr) {
+ assertThat(result).isInstanceOf(PdxInstance.class);
+ }
+ });
+ }
/**
* Tests index on PdxInstance.
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/utils/PDXUtils.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/utils/PDXUtils.java
index 6ca3782..f9df944 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/utils/PDXUtils.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/utils/PDXUtils.java
@@ -16,6 +16,7 @@ package org.apache.geode.cache.query.internal.utils;
import org.apache.geode.cache.CacheException;
import org.apache.geode.cache.query.internal.StructImpl;
+import org.apache.geode.internal.cache.CachedDeserializable;
import org.apache.geode.internal.cache.VMCachedDeserializable;
import org.apache.geode.pdx.PdxInstance;
import org.apache.geode.pdx.internal.PdxString;
@@ -79,8 +80,8 @@ public class PDXUtils {
obj = ((PdxString) obj).toString();
}
- if (getDeserializedObject && obj instanceof VMCachedDeserializable) {
- obj = ((VMCachedDeserializable) obj).getDeserializedForReading();
+ if (getDeserializedObject && obj instanceof CachedDeserializable) {
+ obj = ((CachedDeserializable) obj).getDeserializedForReading();
objectChangedMarker[0] = true;
}