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

albumenj pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.0 by this push:
     new 3a8f44e  Optimize InvokeTelnetHandler code format (#7839)
3a8f44e is described below

commit 3a8f44eb380077eb34132fa4238e1dd36fa28213
Author: passer <[email protected]>
AuthorDate: Sun May 23 21:15:31 2021 +0800

    Optimize InvokeTelnetHandler code format (#7839)
---
 .../dubbo/qos/legacy/InvokeTelnetHandler.java      | 99 ++++++++++++----------
 1 file changed, 52 insertions(+), 47 deletions(-)

diff --git 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java
 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java
index 0ed2f44..571c6ca 100644
--- 
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java
+++ 
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java
@@ -90,29 +90,34 @@ public class InvokeTelnetHandler implements TelnetHandler {
             invokeMethod = (Method) 
channel.getAttribute(SelectTelnetHandler.SELECT_METHOD_KEY);
         } else {
             for (ProviderModel provider : 
ApplicationModel.allProviderModels()) {
-                if (isServiceMatch(service, provider)) {
-                    selectedProvider = provider;
-                    List<Method> methodList = 
findSameSignatureMethod(provider.getAllMethods(), method, list);
-                    if (CollectionUtils.isNotEmpty(methodList)) {
-                        if (methodList.size() == 1) {
-                            invokeMethod = methodList.get(0);
-                        } else {
-                            List<Method> matchMethods = 
findMatchMethods(methodList, list);
-                            if (CollectionUtils.isNotEmpty(matchMethods)) {
-                                if (matchMethods.size() == 1) {
-                                    invokeMethod = matchMethods.get(0);
-                                } else { //exist overridden method
-                                    
channel.setAttribute(INVOKE_METHOD_PROVIDER_KEY, provider);
-                                    
channel.setAttribute(INVOKE_METHOD_LIST_KEY, matchMethods);
-                                    channel.setAttribute(INVOKE_MESSAGE_KEY, 
message);
-                                    printSelectMessage(buf, matchMethods);
-                                    return buf.toString();
-                                }
-                            }
-                        }
-                    }
+                if (!isServiceMatch(service, provider)) {
+                    continue;
+                }
+
+                selectedProvider = provider;
+                List<Method> methodList = 
findSameSignatureMethod(provider.getAllMethods(), method, list);
+                if (CollectionUtils.isEmpty(methodList)) {
                     break;
                 }
+
+                if (methodList.size() == 1) {
+                    invokeMethod = methodList.get(0);
+                } else {
+                    List<Method> matchMethods = findMatchMethods(methodList, 
list);
+                    if (CollectionUtils.isEmpty(matchMethods)) {
+                        break;
+                    }
+                    if (matchMethods.size() == 1) {
+                        invokeMethod = matchMethods.get(0);
+                    } else { //exist overridden method
+                        channel.setAttribute(INVOKE_METHOD_PROVIDER_KEY, 
provider);
+                        channel.setAttribute(INVOKE_METHOD_LIST_KEY, 
matchMethods);
+                        channel.setAttribute(INVOKE_MESSAGE_KEY, message);
+                        printSelectMessage(buf, matchMethods);
+                        return buf.toString();
+                    }
+                }
+                break;
             }
         }
 
@@ -120,33 +125,33 @@ public class InvokeTelnetHandler implements TelnetHandler 
{
         if (!StringUtils.isEmpty(service)) {
             buf.append("Use default service ").append(service).append(".");
         }
-        if (selectedProvider != null) {
-            if (invokeMethod != null) {
-                try {
-                    Object[] array = realize(list.toArray(), 
invokeMethod.getParameterTypes(),
-                            invokeMethod.getGenericParameterTypes());
-                    long start = System.currentTimeMillis();
-                    AppResponse result = new AppResponse();
-                    try {
-                        Object o = 
invokeMethod.invoke(selectedProvider.getServiceInstance(), array);
-                        result.setValue(o);
-                    } catch (Throwable t) {
-                        result.setException(t);
-                    }
-                    long end = System.currentTimeMillis();
-                    buf.append("\r\nresult: ");
-                    buf.append(JSON.toJSONString(result.recreate()));
-                    buf.append("\r\nelapsed: ");
-                    buf.append(end - start);
-                    buf.append(" ms.");
-                } catch (Throwable t) {
-                    return "Failed to invoke method " + invokeMethod.getName() 
+ ", cause: " + StringUtils.toString(t);
-                }
-            } else {
-                buf.append("\r\nNo such method ").append(method).append(" in 
service ").append(service);
-            }
-        } else {
+        if (selectedProvider == null) {
             buf.append("\r\nNo such service ").append(service);
+            return buf.toString();
+        }
+        if (invokeMethod == null) {
+            buf.append("\r\nNo such method ").append(method).append(" in 
service ").append(service);
+            return buf.toString();
+        }
+        try {
+            Object[] array = realize(list.toArray(), 
invokeMethod.getParameterTypes(),
+                    invokeMethod.getGenericParameterTypes());
+            long start = System.currentTimeMillis();
+            AppResponse result = new AppResponse();
+            try {
+                Object o = 
invokeMethod.invoke(selectedProvider.getServiceInstance(), array);
+                result.setValue(o);
+            } catch (Throwable t) {
+                result.setException(t);
+            }
+            long end = System.currentTimeMillis();
+            buf.append("\r\nresult: ");
+            buf.append(JSON.toJSONString(result.recreate()));
+            buf.append("\r\nelapsed: ");
+            buf.append(end - start);
+            buf.append(" ms.");
+        } catch (Throwable t) {
+            return "Failed to invoke method " + invokeMethod.getName() + ", 
cause: " + StringUtils.toString(t);
         }
         return buf.toString();
     }

Reply via email to