You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by zh...@apache.org on 2021/08/10 21:18:24 UTC

[geode] 01/01: GEODE-9496: Enhance the usage of newly introduced system property

This is an automated email from the ASF dual-hosted git repository.

zhouxj pushed a commit to branch feature/GEODE-9496
in repository https://gitbox.apache.org/repos/asf/geode.git

commit c24e13aef836bd0fbf399774e5b9ca372dfff5ae
Author: zhouxh <gz...@pivotal.io>
AuthorDate: Tue Aug 10 14:16:41 2021 -0700

    GEODE-9496: Enhance the usage of newly introduced system property
---
 .../java/org/apache/geode/cache/client/internal/QueryOp.java  |  8 +++++---
 .../org/apache/geode/internal/lang/SystemPropertyHelper.java  |  3 +++
 .../apache/geode/internal/lang/SystemPropertyHelperTest.java  | 11 +++++++++++
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueryOp.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueryOp.java
index 1675cae..719adcb 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueryOp.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/QueryOp.java
@@ -31,10 +31,10 @@ import org.apache.geode.internal.cache.tier.sockets.ChunkedMessage;
 import org.apache.geode.internal.cache.tier.sockets.Message;
 import org.apache.geode.internal.cache.tier.sockets.ObjectPartList;
 import org.apache.geode.internal.cache.tier.sockets.Part;
+import org.apache.geode.internal.lang.SystemPropertyHelper;
 import org.apache.geode.internal.serialization.KnownVersion;
 import org.apache.geode.logging.internal.log4j.api.LogService;
 import org.apache.geode.pdx.PdxSerializationException;
-import org.apache.geode.util.internal.GeodeGlossary;
 
 /**
  * Does a region query on a server
@@ -132,8 +132,10 @@ public class QueryOp {
           // connection to the same server and retried the query to it, that it would also
           // workaround this issue and it would not have the limitations of needing multiple servers
           // and would not depend on the retry-attempts configuration.
-          boolean enableQueryRetryOnPdxSerializationException = Boolean.getBoolean(
-              GeodeGlossary.GEMFIRE_PREFIX + "enableQueryRetryOnPdxSerializationException");
+          boolean enableQueryRetryOnPdxSerializationException = SystemPropertyHelper
+              .getProductBooleanProperty(
+                  SystemPropertyHelper.ENABLE_QUERY_RETRY_ON_PDX_SERIALIZATION_EXCEPTION)
+              .orElse(false);
           if (e instanceof PdxSerializationException
               && enableQueryRetryOnPdxSerializationException) {
             // IOException will allow the client to retry next server in the connection pool until
diff --git a/geode-core/src/main/java/org/apache/geode/internal/lang/SystemPropertyHelper.java b/geode-core/src/main/java/org/apache/geode/internal/lang/SystemPropertyHelper.java
index f66f82a..1383a62 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/lang/SystemPropertyHelper.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/lang/SystemPropertyHelper.java
@@ -71,6 +71,9 @@ public class SystemPropertyHelper {
 
   public static final String USE_HTTP_SYSTEM_PROPERTY = "useHTTP";
 
+  public static final String ENABLE_QUERY_RETRY_ON_PDX_SERIALIZATION_EXCEPTION =
+      "enableQueryRetryOnPdxSerializationException";
+
   /**
    * a comma separated string to list out the packages to scan. If not specified, the entire
    * classpath is scanned.
diff --git a/geode-core/src/test/java/org/apache/geode/internal/lang/SystemPropertyHelperTest.java b/geode-core/src/test/java/org/apache/geode/internal/lang/SystemPropertyHelperTest.java
index f44af8a..353a7c9 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/lang/SystemPropertyHelperTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/lang/SystemPropertyHelperTest.java
@@ -108,6 +108,17 @@ public class SystemPropertyHelperTest {
   }
 
   @Test
+  public void getBooleanPropertyReturnsEnableRetryOnPdxSerializationException() {
+    String testProperty = "enableQueryRetryOnPdxSerializationException";
+    String gemfirePrefixProperty = "gemfire." + testProperty;
+    System.setProperty(gemfirePrefixProperty, "true");
+    assertThat(SystemPropertyHelper.getProductBooleanProperty(testProperty).get()).isTrue();
+    System.clearProperty(gemfirePrefixProperty);
+    assertThat(SystemPropertyHelper.getProductBooleanProperty(testProperty).orElse(false))
+        .isFalse();
+  }
+
+  @Test
   public void getBooleanPropertyParallelDiskStoreRecovery() {
     // default
     assertThat(SystemPropertyHelper