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

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


The following commit(s) were added to refs/heads/branch-3.7 by this push:
     new 434c54d  ZOOKEEPER-4345: Avoid NoSunchMethodException caused by shaded 
zookeeper jar
434c54d is described below

commit 434c54d7501f9cbb15126561d3ca3d16aeace076
Author: Bo Cui <[email protected]>
AuthorDate: Wed Aug 11 20:40:33 2021 +0530

    ZOOKEEPER-4345: Avoid NoSunchMethodException caused by shaded zookeeper jar
    
    Author: Bo <[email protected]>
    
    Reviewers: Enrico Olivelli <[email protected]>, Mohammad Arshad 
<[email protected]>
    
    Closes #1736 from cuibo01/zookeeper-4345 and squashes the following commits:
    
    3965f2e8d [Bo] [ZOOKEEPER-4345]Avoid NoSunchMethodException caused by shaded
    970972971 [Bo] [ZOOKEEPER-4345]Avoid NoSunchMethodException caused by shaded
    
    (cherry picked from commit 5f6ec6cc7fd303702dca31edd2317b33c6e66bd1)
    Signed-off-by: Mohammad Arshad <[email protected]>
---
 .../src/main/java/org/apache/zookeeper/ZooKeeper.java        |  5 ++++-
 .../test/java/org/apache/zookeeper/test/ClientSSLTest.java   | 12 ++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java 
b/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java
index 9fba7a5..a013dd3 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java
@@ -3028,9 +3028,12 @@ public class ZooKeeper implements AutoCloseable {
 
     private ClientCnxnSocket getClientCnxnSocket() throws IOException {
         String clientCnxnSocketName = 
getClientConfig().getProperty(ZKClientConfig.ZOOKEEPER_CLIENT_CNXN_SOCKET);
-        if (clientCnxnSocketName == null) {
+        if (clientCnxnSocketName == null || 
clientCnxnSocketName.equals(ClientCnxnSocketNIO.class.getSimpleName())) {
             clientCnxnSocketName = ClientCnxnSocketNIO.class.getName();
+        } else if 
(clientCnxnSocketName.equals(ClientCnxnSocketNetty.class.getSimpleName())) {
+            clientCnxnSocketName = ClientCnxnSocketNetty.class.getName();
         }
+
         try {
             Constructor<?> clientCxnConstructor = 
Class.forName(clientCnxnSocketName)
                                                        
.getDeclaredConstructor(ZKClientConfig.class);
diff --git 
a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientSSLTest.java 
b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientSSLTest.java
index db1c81f..3996238 100644
--- 
a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientSSLTest.java
+++ 
b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ClientSSLTest.java
@@ -84,6 +84,18 @@ public class ClientSSLTest extends QuorumPeerTestBase {
         testClientServerSSL(false);
     }
 
+    @Test
+    public void testClientServerUnifiedPortWithCnxnClassName() throws 
Exception {
+        System.setProperty(ZKClientConfig.ZOOKEEPER_CLIENT_CNXN_SOCKET, 
"ClientCnxnSocketNIO");
+        testClientServerSSL(false);
+    }
+
+    @Test
+    public void testClientServerSSLWithCnxnClassName() throws Exception {
+        System.setProperty(ZKClientConfig.ZOOKEEPER_CLIENT_CNXN_SOCKET, 
"ClientCnxnSocketNetty");
+        testClientServerSSL(true);
+    }
+
     /**
      * This test checks that client - server SSL works in cluster setup of ZK 
servers, which includes:
      * 1. setting "secureClientPort" in "zoo.cfg" file.

Reply via email to