You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ar...@apache.org on 2020/01/20 07:39:59 UTC

[zookeeper] branch master updated: ZOOKEEPER-3667: Setting jute.maxbuffer value in hexadecimal throws Exception

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

arshad pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zookeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 49ad75b  ZOOKEEPER-3667: Setting jute.maxbuffer value in hexadecimal throws Exception
49ad75b is described below

commit 49ad75b18bfe26e853050f5add6f10f567399058
Author: Sujith Simon <su...@huawei.com>
AuthorDate: Mon Jan 20 13:09:29 2020 +0530

    ZOOKEEPER-3667: Setting jute.maxbuffer value in hexadecimal throws Exception
    
    Author: sujithsimon22 <su...@huawei.com>
    
    Reviewers: Mohammad Arshad <ar...@apache.org>
    
    Closes #1222 from sujithsimon22/3667
---
 .../java/org/apache/zookeeper/common/ZKConfig.java |  2 +-
 .../zookeeper/client/ZKClientConfigTest.java       | 25 ++++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKConfig.java b/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKConfig.java
index d7bed70..11cdc06 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKConfig.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKConfig.java
@@ -273,7 +273,7 @@ public class ZKConfig {
     public int getInt(String key, int defaultValue) {
         String value = getProperty(key);
         if (value != null) {
-            return Integer.parseInt(value.trim());
+            return Integer.decode(value.trim());
         }
         return defaultValue;
     }
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/client/ZKClientConfigTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/client/ZKClientConfigTest.java
index e0c25a1..9a9b622 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/client/ZKClientConfigTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/client/ZKClientConfigTest.java
@@ -185,4 +185,29 @@ public class ZKClientConfigTest {
         assertEquals(value, result);
     }
 
+    @Test
+    public void testIntegerRetrievalFromHexadecimalProperty() {
+        int hexaValue = 0x3000000;
+        String wrongValue = "0xwel";
+        int defaultValue = 100;
+        // property is set in hexadecimal value
+        ZKClientConfig zkClientConfig = new ZKClientConfig();
+        zkClientConfig.setProperty(ZKConfig.JUTE_MAXBUFFER,
+                Integer.toString(hexaValue));
+        int result = zkClientConfig.getInt(ZKConfig.JUTE_MAXBUFFER, defaultValue);
+        assertEquals(result, hexaValue);
+        zkClientConfig.setProperty(ZKConfig.JUTE_MAXBUFFER,
+                wrongValue);
+        try {
+            result = zkClientConfig.getInt(ZKConfig.JUTE_MAXBUFFER, defaultValue);
+            fail("NumberFormatException is expected");
+        } catch (NumberFormatException exception) {
+            // do nothing
+        }
+        zkClientConfig.setProperty(ZKConfig.JUTE_MAXBUFFER,
+                " " + hexaValue + " ");
+        result = zkClientConfig.getInt(ZKConfig.JUTE_MAXBUFFER, defaultValue);
+        assertEquals(result, hexaValue);
+    }
+
 }