You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2022/06/27 03:16:22 UTC
[dubbo] branch 3.0 updated: Optimization code (#10158)
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 06cb5cdd3f Optimization code (#10158)
06cb5cdd3f is described below
commit 06cb5cdd3fbdfb0f729a14c061304820b410fdc2
Author: hdyztmdqd <hd...@gmail.com>
AuthorDate: Mon Jun 27 11:16:15 2022 +0800
Optimization code (#10158)
* Use StringBuilder#append(Char) to improve performance
* replace with lambda
* The original implementation calls the get method twice.Replace it with computeIfAbsent.
Co-authored-by: huangdeyuan <29...@qq.com>
---
.../rpc/cluster/router/RouterSnapshotNode.java | 4 +--
.../cluster/router/mesh/route/MeshRuleRouter.java | 2 +-
.../cluster/router/state/RouterGroupingState.java | 2 +-
.../src/main/java/org/apache/dubbo/common/URL.java | 6 ++--
.../org/apache/dubbo/common/bytecode/Mixin.java | 2 +-
.../org/apache/dubbo/common/bytecode/Proxy.java | 2 +-
.../dubbo/common/extension/ExtensionLoader.java | 39 +++++++++++-----------
.../org/apache/dubbo/common/profiler/Profiler.java | 4 +--
.../apache/dubbo/common/utils/ExecutorUtil.java | 23 ++++++-------
.../dubbo/common/io/UnsafeStringWriterTest.java | 2 +-
.../report/support/AbstractMetadataReport.java | 27 +++++++--------
.../AbstractServiceAnnotationProcessor.java | 2 +-
.../dubbo/qos/command/impl/ChangeTelnet.java | 2 +-
.../dubbo/qos/command/impl/GetRouterSnapshot.java | 2 +-
.../dubbo/qos/command/impl/InvokeTelnet.java | 2 +-
.../qos/server/handler/QosProcessHandler.java | 13 +++-----
.../listener/ServiceInstancesChangedListener.java | 2 +-
.../registry/multicast/MulticastRegistry.java | 13 +++-----
.../remoting/http/jetty/JettyLoggerAdapter.java | 2 +-
.../apache/dubbo/test/check/DubboTestChecker.java | 2 +-
20 files changed, 69 insertions(+), 84 deletions(-)
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/RouterSnapshotNode.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/RouterSnapshotNode.java
index d8f21a9a3d..b0a09759b6 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/RouterSnapshotNode.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/RouterSnapshotNode.java
@@ -116,10 +116,10 @@ public class RouterSnapshotNode<T> {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("[ ")
.append(name)
- .append(" ")
+ .append(' ')
.append("(Input: ").append(beforeSize).append(") ")
.append("(Current Node Output: ").append(nodeOutputSize).append(") ")
- .append("(Chain Node Output: ").append(chainOutputSize).append(")")
+ .append("(Chain Node Output: ").append(chainOutputSize).append(')')
.append(routerMessage == null ? "" : " Router message: ")
.append(routerMessage == null ? "" : routerMessage)
.append(" ] ");
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/mesh/route/MeshRuleRouter.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/mesh/route/MeshRuleRouter.java
index de4ab18f3f..105332e9b7 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/mesh/route/MeshRuleRouter.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/mesh/route/MeshRuleRouter.java
@@ -103,7 +103,7 @@ public abstract class MeshRuleRouter<T> extends AbstractStateRouter<T> implement
BitList<Invoker<T>> destination = meshRuleCache.getSubsetInvokers(appName, subset);
result = result.or(destination);
if (stringBuilder != null) {
- stringBuilder.append("Match App: ").append(appName).append(" Subset: ").append(subset).append(" ");
+ stringBuilder.append("Match App: ").append(appName).append(" Subset: ").append(subset).append(' ');
}
}
}
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/state/RouterGroupingState.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/state/RouterGroupingState.java
index 396efa1f1a..fed028b7e2 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/state/RouterGroupingState.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/state/RouterGroupingState.java
@@ -49,7 +49,7 @@ public class RouterGroupingState<T> {
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(routerName)
- .append(" ")
+ .append(' ')
.append(" Total: ")
.append(total)
.append("\n");
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
index fb9f1b65a5..2e1eb3a17a 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
@@ -378,11 +378,11 @@ class URL implements Serializable {
if (StringUtils.isNotEmpty(getHost())) {
if (StringUtils.isNotEmpty(getUsername()) || StringUtils.isNotEmpty(getPassword())) {
- ret.append("@");
+ ret.append('@');
}
ret.append(getHost());
if (getPort() != 0) {
- ret.append(":");
+ ret.append(':');
ret.append(getPort());
}
}
@@ -406,7 +406,7 @@ class URL implements Serializable {
ret.append(getUsername());
}
- ret.append(":");
+ ret.append(':');
if (StringUtils.isNotEmpty(getPassword())) {
ret.append(getPassword());
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Mixin.java b/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Mixin.java
index 88f23be03e..86b819d0b6 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Mixin.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Mixin.java
@@ -108,7 +108,7 @@ public abstract class Mixin {
code.append('d').append(i).append(" = (").append(dcs[i].getName()).append(")$1[").append(i).append("];\n");
if (MixinAware.class.isAssignableFrom(dcs[i])) {
- code.append("d").append(i).append(".setMixinInstance(this);\n");
+ code.append('d').append(i).append(".setMixinInstance(this);\n");
}
}
ccp.addConstructor(Modifier.PUBLIC, new Class<?>[]{Object[].class}, code.toString());
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Proxy.java b/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Proxy.java
index 30617a2226..c3f14bee12 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Proxy.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Proxy.java
@@ -150,7 +150,7 @@ public class Proxy {
StringBuilder code = new StringBuilder("Object[] args = new Object[").append(pts.length).append("];");
for (int j = 0; j < pts.length; j++) {
- code.append(" args[").append(j).append("] = ($w)$").append(j + 1).append(";");
+ code.append(" args[").append(j).append("] = ($w)$").append(j + 1).append(';');
}
code.append(" Object ret = handler.invoke(this, methods[").append(ix).append("], args);");
if (!Void.TYPE.equals(rt)) {
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java
index a170f3684c..2c0d955b8c 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java
@@ -1095,28 +1095,27 @@ public class ExtensionLoader<T> {
}
}
- if (urlListMap.get(resourceURL) != null) {
- return urlListMap.get(resourceURL);
- }
-
- List<String> newContentList = new ArrayList<>();
-
- try (BufferedReader reader = new BufferedReader(new InputStreamReader(resourceURL.openStream(), StandardCharsets.UTF_8))) {
- String line;
- while ((line = reader.readLine()) != null) {
- final int ci = line.indexOf('#');
- if (ci >= 0) {
- line = line.substring(0, ci);
- }
- line = line.trim();
- if (line.length() > 0) {
- newContentList.add(line);
+ List<String> contentList = urlListMap.computeIfAbsent(resourceURL,key->{
+ List<String> newContentList = new ArrayList<>();
+
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(resourceURL.openStream(), StandardCharsets.UTF_8))) {
+ String line;
+ while ((line = reader.readLine()) != null) {
+ final int ci = line.indexOf('#');
+ if (ci >= 0) {
+ line = line.substring(0, ci);
+ }
+ line = line.trim();
+ if (line.length() > 0) {
+ newContentList.add(line);
+ }
}
+ } catch (IOException e) {
+ throw new RuntimeException(e.getMessage(), e);
}
- }
-
- urlListMap.put(resourceURL, newContentList);
- return newContentList;
+ return newContentList;
+ });
+ return contentList;
}
private boolean isIncluded(String className, String... includedPackages) {
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/profiler/Profiler.java b/dubbo-common/src/main/java/org/apache/dubbo/common/profiler/Profiler.java
index 8bb1920e19..4fc50d90d0 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/profiler/Profiler.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/profiler/Profiler.java
@@ -79,9 +79,9 @@ public class Profiler {
long offset = entry.getStartTime() - startTime;
List<String> lines = new LinkedList<>();
stringBuilder.append("+-[ Offset: ")
- .append(offset / 1000_000).append(".").append(String.format("%06d", offset % 1000_000))
+ .append(offset / 1000_000).append('.').append(String.format("%06d", offset % 1000_000))
.append("ms; Usage: ")
- .append(usage / 1000_000).append(".").append(String.format("%06d", usage % 1000_000))
+ .append(usage / 1000_000).append('.').append(String.format("%06d", usage % 1000_000))
.append("ms, ")
.append(percent)
.append("% ] ")
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ExecutorUtil.java b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ExecutorUtil.java
index 97f13a5f96..c462ac4d7d 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ExecutorUtil.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ExecutorUtil.java
@@ -99,21 +99,18 @@ public class ExecutorUtil {
private static void newThreadToCloseExecutor(final ExecutorService es) {
if (!isTerminated(es)) {
- SHUTDOWN_EXECUTOR.execute(new Runnable() {
- @Override
- public void run() {
- try {
- for (int i = 0; i < 1000; i++) {
- es.shutdownNow();
- if (es.awaitTermination(10, TimeUnit.MILLISECONDS)) {
- break;
- }
+ SHUTDOWN_EXECUTOR.execute(() -> {
+ try {
+ for (int i = 0; i < 1000; i++) {
+ es.shutdownNow();
+ if (es.awaitTermination(10, TimeUnit.MILLISECONDS)) {
+ break;
}
- } catch (InterruptedException ex) {
- Thread.currentThread().interrupt();
- } catch (Throwable e) {
- logger.warn(e.getMessage(), e);
}
+ } catch (InterruptedException ex) {
+ Thread.currentThread().interrupt();
+ } catch (Throwable e) {
+ logger.warn(e.getMessage(), e);
}
});
}
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/io/UnsafeStringWriterTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/io/UnsafeStringWriterTest.java
index dbe8d5ca16..3f4c0c81c2 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/io/UnsafeStringWriterTest.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/io/UnsafeStringWriterTest.java
@@ -45,7 +45,7 @@ public class UnsafeStringWriterTest {
@Test
public void testAppend() {
UnsafeStringWriter writer = new UnsafeStringWriter();
- writer.append("a");
+ writer.append('a');
writer.append("abc", 1, 2);
writer.append('c');
writer.flush();
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReport.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReport.java
index 1e2d26c61e..e24e273739 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReport.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReport.java
@@ -453,22 +453,19 @@ public abstract class AbstractMetadataReport implements MetadataReport {
if (retryScheduledFuture == null) {
synchronized (retryCounter) {
if (retryScheduledFuture == null) {
- retryScheduledFuture = retryExecutor.scheduleWithFixedDelay(new Runnable() {
- @Override
- public void run() {
- // Check and connect to the metadata
- try {
- int times = retryCounter.incrementAndGet();
- logger.info("start to retry task for metadata report. retry times:" + times);
- if (retry() && times > retryTimesIfNonFail) {
- cancelRetryTask();
- }
- if (times > retryLimit) {
- cancelRetryTask();
- }
- } catch (Throwable t) { // Defensive fault tolerance
- logger.error("Unexpected error occur at failed retry, cause: " + t.getMessage(), t);
+ retryScheduledFuture = retryExecutor.scheduleWithFixedDelay(() -> {
+ // Check and connect to the metadata
+ try {
+ int times = retryCounter.incrementAndGet();
+ logger.info("start to retry task for metadata report. retry times:" + times);
+ if (retry() && times > retryTimesIfNonFail) {
+ cancelRetryTask();
}
+ if (times > retryLimit) {
+ cancelRetryTask();
+ }
+ } catch (Throwable t) { // Defensive fault tolerance
+ logger.error("Unexpected error occur at failed retry, cause: " + t.getMessage(), t);
}
}, 500, retryPeriod, TimeUnit.MILLISECONDS);
}
diff --git a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/AbstractServiceAnnotationProcessor.java b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/AbstractServiceAnnotationProcessor.java
index 0eacd6ade5..d65c6ba7e8 100644
--- a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/AbstractServiceAnnotationProcessor.java
+++ b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/AbstractServiceAnnotationProcessor.java
@@ -82,7 +82,7 @@ public abstract class AbstractServiceAnnotationProcessor extends AbstractProcess
});
methodSignatureBuilder.append(method.getReturnType())
- .append(" ")
+ .append(' ')
.append(method.toString());
return methodSignatureBuilder.toString();
diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/ChangeTelnet.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/ChangeTelnet.java
index d0a9f2d999..96d6d3c5e2 100644
--- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/ChangeTelnet.java
+++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/ChangeTelnet.java
@@ -51,7 +51,7 @@ public class ChangeTelnet implements BaseCommand {
StringBuilder buf = new StringBuilder();
if ("/".equals(message) || "..".equals(message)) {
String service = channel.attr(SERVICE_KEY).getAndRemove();
- buf.append("Cancelled default service ").append(service).append(".");
+ buf.append("Cancelled default service ").append(service).append('.');
} else {
boolean found = false;
for (Exporter<?> exporter : dubboProtocol.getExporters()) {
diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/GetRouterSnapshot.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/GetRouterSnapshot.java
index b827da6748..0c34f18f9e 100644
--- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/GetRouterSnapshot.java
+++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/GetRouterSnapshot.java
@@ -57,7 +57,7 @@ public class GetRouterSnapshot implements BaseCommand {
for (Map.Entry<Registry, MigrationInvoker<?>> invokerEntry : invokerMap.entrySet()) {
Directory<?> directory = invokerEntry.getValue().getDirectory();
StateRouter<?> headStateRouter = directory.getRouterChain().getHeadStateRouter();
- stringBuilder.append(metadata.getServiceKey()).append("@").append(Integer.toHexString(System.identityHashCode(metadata)))
+ stringBuilder.append(metadata.getServiceKey()).append('@').append(Integer.toHexString(System.identityHashCode(metadata)))
.append("\n")
.append("[ All Invokers:").append(directory.getAllInvokers().size()).append(" ] ")
.append("[ Valid Invokers: ").append(((AbstractDirectory<?>)directory).getValidInvokers().size()).append(" ]\n")
diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/InvokeTelnet.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/InvokeTelnet.java
index 6ac889ed80..507282160e 100644
--- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/InvokeTelnet.java
+++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/InvokeTelnet.java
@@ -133,7 +133,7 @@ public class InvokeTelnet implements BaseCommand {
if (!StringUtils.isEmpty(service)) {
- buf.append("Use default service ").append(service).append(".");
+ buf.append("Use default service ").append(service).append('.');
}
if (selectedProvider == null) {
buf.append("\r\nNo such service ").append(service);
diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/QosProcessHandler.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/QosProcessHandler.java
index f1dc1eee77..4e5ef439f8 100644
--- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/QosProcessHandler.java
+++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/server/handler/QosProcessHandler.java
@@ -57,16 +57,11 @@ public class QosProcessHandler extends ByteToMessageDecoder {
@Override
public void channelActive(final ChannelHandlerContext ctx) throws Exception {
- welcomeFuture = ctx.executor().schedule(new Runnable() {
-
- @Override
- public void run() {
- if (welcome != null) {
- ctx.write(Unpooled.wrappedBuffer(welcome.getBytes()));
- ctx.writeAndFlush(Unpooled.wrappedBuffer(PROMPT.getBytes()));
- }
+ welcomeFuture = ctx.executor().schedule(() -> {
+ if (welcome != null) {
+ ctx.write(Unpooled.wrappedBuffer(welcome.getBytes()));
+ ctx.writeAndFlush(Unpooled.wrappedBuffer(PROMPT.getBytes()));
}
-
}, 500, TimeUnit.MILLISECONDS);
}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java
index 3142f5f202..486fd90868 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java
@@ -328,7 +328,7 @@ public class ServiceInstancesChangedListener {
}
builder.append(entry.getKey());
- builder.append(" ");
+ builder.append(' ');
}
if (emptyMetadataNum > 0) {
diff --git a/dubbo-registry/dubbo-registry-multicast/src/main/java/org/apache/dubbo/registry/multicast/MulticastRegistry.java b/dubbo-registry/dubbo-registry-multicast/src/main/java/org/apache/dubbo/registry/multicast/MulticastRegistry.java
index 689d3c81d8..f9679153e1 100644
--- a/dubbo-registry/dubbo-registry-multicast/src/main/java/org/apache/dubbo/registry/multicast/MulticastRegistry.java
+++ b/dubbo-registry/dubbo-registry-multicast/src/main/java/org/apache/dubbo/registry/multicast/MulticastRegistry.java
@@ -134,14 +134,11 @@ public class MulticastRegistry extends FailbackRegistry {
}
this.cleanPeriod = url.getParameter(SESSION_TIMEOUT_KEY, DEFAULT_SESSION_TIMEOUT);
if (url.getParameter("clean", true)) {
- this.cleanFuture = cleanExecutor.scheduleWithFixedDelay(new Runnable() {
- @Override
- public void run() {
- try {
- clean(); // Remove the expired
- } catch (Throwable t) { // Defensive fault tolerance
- logger.error("Unexpected exception occur at clean expired provider, cause: " + t.getMessage(), t);
- }
+ this.cleanFuture = cleanExecutor.scheduleWithFixedDelay(() -> {
+ try {
+ clean(); // Remove the expired
+ } catch (Throwable t) { // Defensive fault tolerance
+ logger.error("Unexpected exception occur at clean expired provider, cause: " + t.getMessage(), t);
}
}, cleanPeriod, cleanPeriod, TimeUnit.MILLISECONDS);
} else {
diff --git a/dubbo-remoting/dubbo-remoting-http/src/main/java/org/apache/dubbo/remoting/http/jetty/JettyLoggerAdapter.java b/dubbo-remoting/dubbo-remoting-http/src/main/java/org/apache/dubbo/remoting/http/jetty/JettyLoggerAdapter.java
index cb9a84f35e..1b7f1aa85f 100644
--- a/dubbo-remoting/dubbo-remoting-http/src/main/java/org/apache/dubbo/remoting/http/jetty/JettyLoggerAdapter.java
+++ b/dubbo-remoting/dubbo-remoting-http/src/main/java/org/apache/dubbo/remoting/http/jetty/JettyLoggerAdapter.java
@@ -143,7 +143,7 @@ public class JettyLoggerAdapter extends AbstractLogger {
int bracesIndex = msg.indexOf(braces, start);
if (bracesIndex < 0) {
builder.append(msg.substring(start));
- builder.append(" ");
+ builder.append(' ');
builder.append(arg);
start = msg.length();
} else {
diff --git a/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/DubboTestChecker.java b/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/DubboTestChecker.java
index 5a065aac2b..846d01a8ad 100644
--- a/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/DubboTestChecker.java
+++ b/dubbo-test/dubbo-test-check/src/main/java/org/apache/dubbo/test/check/DubboTestChecker.java
@@ -297,7 +297,7 @@ public class DubboTestChecker implements TestExecutionListener {
public static String getFullStacktrace(Thread thread, StackTraceElement[] stackTrace) {
StringBuilder sb = new StringBuilder("Thread: \"" + thread.getName() + "\"" + " Id="
+ thread.getId());
- sb.append(" ").append(thread.getState());
+ sb.append(' ').append(thread.getState());
sb.append('\n');
if (stackTrace == null) {
stackTrace = thread.getStackTrace();