Browse Source

fix connected() and add port range check

zhiru 5 years ago
parent
commit
3e9b42d16d
1 changed files with 12 additions and 2 deletions
  1. 12 2
      src/main/java/io/milvus/client/MilvusGrpcClient.java

+ 12 - 2
src/main/java/io/milvus/client/MilvusGrpcClient.java

@@ -26,6 +26,12 @@ public class MilvusGrpcClient implements MilvusClient {
         }
 
         try {
+            int port = Integer.parseInt(connectParam.getPort());
+            if (port < 0 || port > 0xFFFF) {
+                logSevere("Connect failed! Port {0} out of range", connectParam.getPort());
+                return new Response(Response.Status.CONNECT_FAILED);
+            }
+
             channel = ManagedChannelBuilder
                     .forAddress(connectParam.getHost(), Integer.parseInt(connectParam.getPort()))
                     .usePlaintext()
@@ -46,7 +52,7 @@ public class MilvusGrpcClient implements MilvusClient {
             blockingStub = io.milvus.client.grpc.MilvusServiceGrpc.newBlockingStub(channel);
 
         } catch (Exception e) {
-            logSevere("Connect failed!", e.toString());
+            logSevere("Connect failed! {0}\n{1}", connectParam.toString(), e.toString());
             return new Response(Response.Status.CONNECT_FAILED);
         }
 
@@ -56,7 +62,11 @@ public class MilvusGrpcClient implements MilvusClient {
 
     @Override
     public boolean connected() {
-        return channel != null && !channel.isShutdown() && !channel.isTerminated();
+        if (channel == null) {
+            return false;
+        }
+        ConnectivityState connectivityState = channel.getState(false);
+        return connectivityState == ConnectivityState.READY;
     }
 
     @Override