From 3e89593d7bef93adc97acb122f22f69c52d9b3f2 Mon Sep 17 00:00:00 2001 From: XenoAmess Date: Tue, 30 Nov 2021 17:46:31 +0800 Subject: [PATCH] simplify condition (#1977) --- .../org/apache/commons/net/telnet/Telnet.java | 2 +- .../com/taobao/arthas/common/FileUtils.java | 2 +- .../com/taobao/arthas/core/GlobalOptions.java | 2 +- .../core/advisor/AdviceListenerManager.java | 44 ++++++------ .../taobao/arthas/core/advisor/Enhancer.java | 2 +- .../command/basic1000/HistoryCommand.java | 2 +- .../core/command/basic1000/KeymapCommand.java | 2 +- .../core/command/express/OgnlExpress.java | 2 +- .../command/klass100/ClassLoaderCommand.java | 2 +- .../core/command/monitor200/MBeanCommand.java | 2 +- .../monitor200/MonitorAdviceListener.java | 3 +- .../command/monitor200/ProfilerCommand.java | 8 +-- .../arthas/core/config/BinderUtils.java | 70 +++++++++---------- .../core/shell/cli/CompletionUtils.java | 2 +- .../shell/command/internal/GrepHandler.java | 2 +- .../session/impl/SessionManagerImpl.java | 7 +- .../term/impl/http/HttpRequestHandler.java | 2 +- .../taobao/arthas/core/util/StringUtils.java | 12 ++-- .../arthas/core/util/TypeRenderUtils.java | 2 +- .../arthas/core/util/reflect/FieldUtils.java | 2 +- .../arthas/core/view/ClassInfoView.java | 7 +- .../arthas/core/view/MethodInfoView.java | 6 +- 22 files changed, 85 insertions(+), 100 deletions(-) diff --git a/client/src/main/java/org/apache/commons/net/telnet/Telnet.java b/client/src/main/java/org/apache/commons/net/telnet/Telnet.java index c66f891d6..e78bf5bba 100644 --- a/client/src/main/java/org/apache/commons/net/telnet/Telnet.java +++ b/client/src/main/java/org/apache/commons/net/telnet/Telnet.java @@ -1065,7 +1065,7 @@ class Telnet extends SocketClient _output_.flush(); } aytMonitor.wait(timeout); - if (aytFlag == false) + if (!aytFlag) { retValue = false; aytFlag = true; diff --git a/common/src/main/java/com/taobao/arthas/common/FileUtils.java b/common/src/main/java/com/taobao/arthas/common/FileUtils.java index 2b58caad5..c9da7688b 100644 --- a/common/src/main/java/com/taobao/arthas/common/FileUtils.java +++ b/common/src/main/java/com/taobao/arthas/common/FileUtils.java @@ -115,7 +115,7 @@ public class FileUtils { if (file.isDirectory()) { throw new IOException("File '" + file + "' exists but is a directory"); } - if (file.canWrite() == false) { + if (!file.canWrite()) { throw new IOException("File '" + file + "' cannot be written to"); } } else { diff --git a/core/src/main/java/com/taobao/arthas/core/GlobalOptions.java b/core/src/main/java/com/taobao/arthas/core/GlobalOptions.java index afd964ab8..919dc0fd0 100644 --- a/core/src/main/java/com/taobao/arthas/core/GlobalOptions.java +++ b/core/src/main/java/com/taobao/arthas/core/GlobalOptions.java @@ -79,7 +79,7 @@ public class GlobalOptions { summary = "Option to control include default method in interface when class matching", description = "This option disable to include default method in interface when matching class." ) - public static volatile boolean isSupportDefaultMethod = true && JavaVersionUtils.isGreaterThanJava7(); + public static volatile boolean isSupportDefaultMethod = JavaVersionUtils.isGreaterThanJava7(); /** * 是否日志中保存命令执行结果 diff --git a/core/src/main/java/com/taobao/arthas/core/advisor/AdviceListenerManager.java b/core/src/main/java/com/taobao/arthas/core/advisor/AdviceListenerManager.java index f78b2a870..13c1896c4 100644 --- a/core/src/main/java/com/taobao/arthas/core/advisor/AdviceListenerManager.java +++ b/core/src/main/java/com/taobao/arthas/core/advisor/AdviceListenerManager.java @@ -60,32 +60,30 @@ public class AdviceListenerManager { @Override public void run() { try { - if (adviceListenerMap != null) { - for (Entry entry : adviceListenerMap.entrySet()) { - ClassLoaderAdviceListenerManager adviceListenerManager = entry.getValue(); - synchronized (adviceListenerManager) { - for (Entry> eee : adviceListenerManager.map.entrySet()) { - List listeners = eee.getValue(); - List newResult = new ArrayList(); - for (AdviceListener listener : listeners) { - if (listener instanceof ProcessAware) { - ProcessAware processAware = (ProcessAware) listener; - Process process = processAware.getProcess(); - if (process == null) { - continue; - } - ExecStatus status = process.status(); - if (!status.equals(ExecStatus.TERMINATED)) { - newResult.add(listener); - } + for (Entry entry : adviceListenerMap.entrySet()) { + ClassLoaderAdviceListenerManager adviceListenerManager = entry.getValue(); + synchronized (adviceListenerManager) { + for (Entry> eee : adviceListenerManager.map.entrySet()) { + List listeners = eee.getValue(); + List newResult = new ArrayList(); + for (AdviceListener listener : listeners) { + if (listener instanceof ProcessAware) { + ProcessAware processAware = (ProcessAware) listener; + Process process = processAware.getProcess(); + if (process == null) { + continue; + } + ExecStatus status = process.status(); + if (!status.equals(ExecStatus.TERMINATED)) { + newResult.add(listener); } } - - if (newResult.size() != listeners.size()) { - adviceListenerManager.map.put(eee.getKey(), newResult); - } - } + + if (newResult.size() != listeners.size()) { + adviceListenerManager.map.put(eee.getKey(), newResult); + } + } } } diff --git a/core/src/main/java/com/taobao/arthas/core/advisor/Enhancer.java b/core/src/main/java/com/taobao/arthas/core/advisor/Enhancer.java index 4cd05774d..a8a271594 100644 --- a/core/src/main/java/com/taobao/arthas/core/advisor/Enhancer.java +++ b/core/src/main/java/com/taobao/arthas/core/advisor/Enhancer.java @@ -143,7 +143,7 @@ public class Enhancer implements ClassFileTransformer { interceptorProcessors.addAll(defaultInterceptorClassParser.parse(SpyInterceptor3.class)); if (this.isTracing) { - if (this.skipJDKTrace == false) { + if (!this.skipJDKTrace) { interceptorProcessors.addAll(defaultInterceptorClassParser.parse(SpyTraceInterceptor1.class)); interceptorProcessors.addAll(defaultInterceptorClassParser.parse(SpyTraceInterceptor2.class)); interceptorProcessors.addAll(defaultInterceptorClassParser.parse(SpyTraceInterceptor3.class)); diff --git a/core/src/main/java/com/taobao/arthas/core/command/basic1000/HistoryCommand.java b/core/src/main/java/com/taobao/arthas/core/command/basic1000/HistoryCommand.java index 407970edc..ad50157ad 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/basic1000/HistoryCommand.java +++ b/core/src/main/java/com/taobao/arthas/core/command/basic1000/HistoryCommand.java @@ -49,7 +49,7 @@ public class HistoryCommand extends AnnotatedCommand { Session session = process.session(); //TODO 修改term history实现方式,统一使用HistoryManager Object termObject = session.get(Session.TTY); - if (termObject != null && termObject instanceof TermImpl) { + if (termObject instanceof TermImpl) { TermImpl term = (TermImpl) termObject; Readline readline = term.getReadline(); List history = readline.getHistory(); diff --git a/core/src/main/java/com/taobao/arthas/core/command/basic1000/KeymapCommand.java b/core/src/main/java/com/taobao/arthas/core/command/basic1000/KeymapCommand.java index 7bb044d68..0d19640ef 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/basic1000/KeymapCommand.java +++ b/core/src/main/java/com/taobao/arthas/core/command/basic1000/KeymapCommand.java @@ -55,7 +55,7 @@ public class KeymapCommand extends AnnotatedCommand { continue; } String[] strings = line.split(":"); - if (strings != null && strings.length == 2) { + if (strings.length == 2) { table.row(strings[0], translate(strings[0]), strings[1]); } else { table.row(line); diff --git a/core/src/main/java/com/taobao/arthas/core/command/express/OgnlExpress.java b/core/src/main/java/com/taobao/arthas/core/command/express/OgnlExpress.java index 85e52e3fb..97f4441c1 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/express/OgnlExpress.java +++ b/core/src/main/java/com/taobao/arthas/core/command/express/OgnlExpress.java @@ -44,7 +44,7 @@ public class OgnlExpress implements Express { @Override public boolean is(String express) throws ExpressException { final Object ret = get(express); - return null != ret && ret instanceof Boolean && (Boolean) ret; + return ret instanceof Boolean && (Boolean) ret; } @Override diff --git a/core/src/main/java/com/taobao/arthas/core/command/klass100/ClassLoaderCommand.java b/core/src/main/java/com/taobao/arthas/core/command/klass100/ClassLoaderCommand.java index 70ab73fba..ffab67d1d 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/klass100/ClassLoaderCommand.java +++ b/core/src/main/java/com/taobao/arthas/core/command/klass100/ClassLoaderCommand.java @@ -136,7 +136,7 @@ public class ClassLoaderCommand extends AnnotatedCommand { break; } } - } else if (targetClassLoader == null && classLoaderClass != null) { + } else if (classLoaderClass != null) { List matchedClassLoaders = ClassLoaderUtils.getClassLoaderByClassName(inst, classLoaderClass); if (matchedClassLoaders.size() == 1) { targetClassLoader = matchedClassLoaders.get(0); diff --git a/core/src/main/java/com/taobao/arthas/core/command/monitor200/MBeanCommand.java b/core/src/main/java/com/taobao/arthas/core/command/monitor200/MBeanCommand.java index 03dfd6579..4515667c1 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/monitor200/MBeanCommand.java +++ b/core/src/main/java/com/taobao/arthas/core/command/monitor200/MBeanCommand.java @@ -417,7 +417,7 @@ public class MBeanCommand extends AnnotatedCommand { logger.error("read mbean attribute failed: objectName={}, attributeName={}", objectName, attributeName, e); String errorStr; Throwable cause = e.getCause(); - if (cause != null && cause instanceof UnsupportedOperationException) { + if (cause instanceof UnsupportedOperationException) { errorStr = "Unsupported"; } else { errorStr = "Failure"; diff --git a/core/src/main/java/com/taobao/arthas/core/command/monitor200/MonitorAdviceListener.java b/core/src/main/java/com/taobao/arthas/core/command/monitor200/MonitorAdviceListener.java index 0b6613566..53ab5e574 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/monitor200/MonitorAdviceListener.java +++ b/core/src/main/java/com/taobao/arthas/core/command/monitor200/MonitorAdviceListener.java @@ -256,8 +256,7 @@ class MonitorAdviceListener extends AdviceListenerAdapter { @Override public boolean equals(Object obj) { - if (null == obj - || !(obj instanceof Key)) { + if (!(obj instanceof Key)) { return false; } Key okey = (Key) obj; diff --git a/core/src/main/java/com/taobao/arthas/core/command/monitor200/ProfilerCommand.java b/core/src/main/java/com/taobao/arthas/core/command/monitor200/ProfilerCommand.java index 3578f4724..bc8b82de1 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/monitor200/ProfilerCommand.java +++ b/core/src/main/java/com/taobao/arthas/core/command/monitor200/ProfilerCommand.java @@ -503,11 +503,9 @@ public class ProfilerCommand extends AnnotatedCommand { } String lines[] = execute.split("\\r?\\n"); - if (lines != null) { - for (String line : lines) { - if (line.startsWith(" ")) { - result.add(line.trim()); - } + for (String line : lines) { + if (line.startsWith(" ")) { + result.add(line.trim()); } } return result; diff --git a/core/src/main/java/com/taobao/arthas/core/config/BinderUtils.java b/core/src/main/java/com/taobao/arthas/core/config/BinderUtils.java index 8af4e2cd5..df7228076 100644 --- a/core/src/main/java/com/taobao/arthas/core/config/BinderUtils.java +++ b/core/src/main/java/com/taobao/arthas/core/config/BinderUtils.java @@ -21,14 +21,13 @@ public class BinderUtils { } public static void inject(Environment environment, String parentPrefix, String prefix, Object instance) { + if (prefix == null) { + prefix = ""; + } Class type = instance.getClass(); try { Config annotation = type.getAnnotation(Config.class); - if (prefix == null) { - prefix = ""; - } - if (annotation == null) { prefix = parentPrefix + '.' + prefix; } else { @@ -41,22 +40,19 @@ public class BinderUtils { } Method[] declaredMethods = type.getDeclaredMethods(); - if (declaredMethods != null) { - // 获取到所有setter方法,再提取出field。根据前缀从 properties里取出值,再尝试用setter方法注入到对象里 - for (Method method : declaredMethods) { - String methodName = method.getName(); - Class[] parameterTypes = method.getParameterTypes(); + // 获取到所有setter方法,再提取出field。根据前缀从 properties里取出值,再尝试用setter方法注入到对象里 + for (Method method : declaredMethods) { + String methodName = method.getName(); + Class[] parameterTypes = method.getParameterTypes(); - if (parameterTypes != null && parameterTypes.length == 1 && methodName.startsWith("set") - && methodName.length() > "set".length()) { + if (parameterTypes.length == 1 && methodName.startsWith("set") && methodName.length() > "set".length()) { - String field = getFieldNameFromSetterMethod(methodName); - String configKey = prefix + '.' + field; - if (environment.containsProperty(configKey)) { - Object reslovedValue = environment.getProperty(prefix + '.' + field, parameterTypes[0]); - if (reslovedValue != null) { - method.invoke(instance, new Object[] { reslovedValue }); - } + String field = getFieldNameFromSetterMethod(methodName); + String configKey = prefix + '.' + field; + if (environment.containsProperty(configKey)) { + Object reslovedValue = environment.getProperty(prefix + '.' + field, parameterTypes[0]); + if (reslovedValue != null) { + method.invoke(instance, new Object[] { reslovedValue }); } } } @@ -68,28 +64,26 @@ public class BinderUtils { // process @NestedConfig Field[] fields = type.getDeclaredFields(); - if (fields != null) { - for (Field field : fields) { - NestedConfig nestedConfig = field.getAnnotation(NestedConfig.class); - if (nestedConfig != null) { - String prefixForField = field.getName(); - if (parentPrefix != null && prefix.length() > 0) { - prefixForField = prefix + '.' + prefixForField; - } + for (Field field : fields) { + NestedConfig nestedConfig = field.getAnnotation(NestedConfig.class); + if (nestedConfig != null) { + String prefixForField = field.getName(); + if (parentPrefix != null && prefix.length() > 0) { + prefixForField = prefix + '.' + prefixForField; + } - field.setAccessible(true); - try { - Object fieldValue = field.get(instance); - if (fieldValue == null) { - fieldValue = field.getType().newInstance(); - } - inject(environment, prefix, prefixForField, fieldValue); - - field.set(instance, fieldValue); - } catch (Exception e) { - throw new RuntimeException("process @NestedConfig error, field: " + field + ", prefix: " - + prefix + ", instance: " + instance, e); + field.setAccessible(true); + try { + Object fieldValue = field.get(instance); + if (fieldValue == null) { + fieldValue = field.getType().newInstance(); } + inject(environment, prefix, prefixForField, fieldValue); + + field.set(instance, fieldValue); + } catch (Exception e) { + throw new RuntimeException("process @NestedConfig error, field: " + field + ", prefix: " + + prefix + ", instance: " + instance, e); } } } diff --git a/core/src/main/java/com/taobao/arthas/core/shell/cli/CompletionUtils.java b/core/src/main/java/com/taobao/arthas/core/shell/cli/CompletionUtils.java index 915afe35c..f2e51e267 100644 --- a/core/src/main/java/com/taobao/arthas/core/shell/cli/CompletionUtils.java +++ b/core/src/main/java/com/taobao/arthas/core/shell/cli/CompletionUtils.java @@ -217,7 +217,7 @@ public class CompletionUtils { } Set> results = SearchUtils.searchClassOnly(completion.session().getInstrumentation(), className, 2); - if (results.isEmpty() || results.size() > 1) { + if (results.size() != 1) { // no class found or multiple class found completion.complete(Collections.emptyList()); return true; diff --git a/core/src/main/java/com/taobao/arthas/core/shell/command/internal/GrepHandler.java b/core/src/main/java/com/taobao/arthas/core/shell/command/internal/GrepHandler.java index b070551eb..c6a6de42f 100644 --- a/core/src/main/java/com/taobao/arthas/core/shell/command/internal/GrepHandler.java +++ b/core/src/main/java/com/taobao/arthas/core/shell/command/internal/GrepHandler.java @@ -120,7 +120,7 @@ public class GrepHandler extends StdoutHandler { } else { match = pattern.matcher(line).find(); } - if (invertMatch ? !match : match) { + if (invertMatch != match) { matchCount++; if (beforeLines > continueCount) { int n = lastContinueLineNum == -1 ? (beforeLines >= lineNum ? 1 : lineNum - beforeLines) diff --git a/core/src/main/java/com/taobao/arthas/core/shell/session/impl/SessionManagerImpl.java b/core/src/main/java/com/taobao/arthas/core/shell/session/impl/SessionManagerImpl.java index e8e4d4cca..3edf548be 100644 --- a/core/src/main/java/com/taobao/arthas/core/shell/session/impl/SessionManagerImpl.java +++ b/core/src/main/java/com/taobao/arthas/core/shell/session/impl/SessionManagerImpl.java @@ -173,9 +173,8 @@ public class SessionManagerImpl implements SessionManager { */ public void evictConsumers(Session session) { SharingResultDistributor distributor = session.getResultDistributor(); - if (distributor != null && distributor instanceof SharingResultDistributor) { - SharingResultDistributor sharingResultDistributor = (SharingResultDistributor) distributor; - List consumers = sharingResultDistributor.getConsumers(); + if (distributor != null) { + List consumers = distributor.getConsumers(); //remove inactive consumer from session directly long now = System.currentTimeMillis(); for (ResultConsumer consumer : consumers) { @@ -185,7 +184,7 @@ public class SessionManagerImpl implements SessionManager { logger.info("Removing inactive consumer from session, sessionId: {}, consumerId: {}, inactive duration: {}", session.getSessionId(), consumer.getConsumerId(), inactiveTime); consumer.appendResult(new MessageModel("consumer is inactive for a while, please refresh the page.")); - sharingResultDistributor.removeConsumer(consumer); + distributor.removeConsumer(consumer); } } } diff --git a/core/src/main/java/com/taobao/arthas/core/shell/term/impl/http/HttpRequestHandler.java b/core/src/main/java/com/taobao/arthas/core/shell/term/impl/http/HttpRequestHandler.java index a9f823946..ee9e45221 100644 --- a/core/src/main/java/com/taobao/arthas/core/shell/term/impl/http/HttpRequestHandler.java +++ b/core/src/main/java/com/taobao/arthas/core/shell/term/impl/http/HttpRequestHandler.java @@ -97,7 +97,7 @@ public class HttpRequestHandler extends SimpleChannelInboundHandler 0) { + if (fields.length > 0) { for (Field field : fields) { @@ -128,7 +127,7 @@ public class ClassInfoView implements View { final StringBuilder annotationSB = new StringBuilder(); final Annotation[] annotationArray = clazz.getDeclaredAnnotations(); - if (null != annotationArray && annotationArray.length > 0) { + if (annotationArray.length > 0) { for (Annotation annotation : annotationArray) { annotationSB.append(StringUtils.classname(annotation.annotationType())).append(","); } @@ -145,7 +144,7 @@ public class ClassInfoView implements View { private String drawInterface() { final StringBuilder interfaceSB = new StringBuilder(); final Class[] interfaceArray = clazz.getInterfaces(); - if (null == interfaceArray || interfaceArray.length == 0) { + if (interfaceArray.length == 0) { interfaceSB.append(Constants.EMPTY_STRING); } else { for (Class i : interfaceArray) { diff --git a/core/src/main/java/com/taobao/arthas/core/view/MethodInfoView.java b/core/src/main/java/com/taobao/arthas/core/view/MethodInfoView.java index 755e7e116..ffde434d1 100644 --- a/core/src/main/java/com/taobao/arthas/core/view/MethodInfoView.java +++ b/core/src/main/java/com/taobao/arthas/core/view/MethodInfoView.java @@ -45,7 +45,7 @@ public class MethodInfoView implements View { final StringBuilder annotationSB = new StringBuilder(); final Annotation[] annotationArray = method.getDeclaredAnnotations(); - if (null != annotationArray && annotationArray.length > 0) { + if (annotationArray.length > 0) { for (Annotation annotation : annotationArray) { annotationSB.append(StringUtils.classname(annotation.annotationType())).append(","); } @@ -62,7 +62,7 @@ public class MethodInfoView implements View { private String drawParameters() { final StringBuilder paramsSB = new StringBuilder(); final Class[] paramTypes = method.getParameterTypes(); - if (null != paramTypes && paramTypes.length > 0) { + if (paramTypes.length > 0) { for (Class clazz : paramTypes) { paramsSB.append(StringUtils.classname(clazz)).append("\n"); } @@ -80,7 +80,7 @@ public class MethodInfoView implements View { private String drawExceptions() { final StringBuilder exceptionSB = new StringBuilder(); final Class[] exceptionTypes = method.getExceptionTypes(); - if (null != exceptionTypes && exceptionTypes.length > 0) { + if (exceptionTypes.length > 0) { for (Class clazz : exceptionTypes) { exceptionSB.append(StringUtils.classname(clazz)).append("\n"); }