From c71eae513b80b4a5ef933bd0bd2cd11d6dde84c6 Mon Sep 17 00:00:00 2001 From: candy <35629966+candyaaa@users.noreply.github.com> Date: Mon, 13 Sep 2021 00:04:27 +0800 Subject: [PATCH] [master] DefaultFuture turn off logging optimization for Channel(issue #8695) (#8778) (cherry picked from commit 2f93930c83ff576ef65d008d03325482a695a319) --- .../dubbo/remoting/exchange/Request.java | 19 +++++++++++++++++++ .../exchange/support/DefaultFuture.java | 9 ++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/Request.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/Request.java index 2e08e8ffb55..07dd67286c2 100644 --- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/Request.java +++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/Request.java @@ -127,6 +127,25 @@ public void setHeartbeat(boolean isHeartbeat) { } } + public Request copy() { + Request copy = new Request(mId); + copy.mVersion = this.mVersion; + copy.mTwoWay = this.mTwoWay; + copy.mEvent = this.mEvent; + copy.mBroken = this.mBroken; + copy.mData = this.mData; + return copy; + } + + public Request copyWithoutData() { + Request copy = new Request(mId); + copy.mVersion = this.mVersion; + copy.mTwoWay = this.mTwoWay; + copy.mEvent = this.mEvent; + copy.mBroken = this.mBroken; + return copy; + } + @Override public String toString() { return "Request [id=" + mId + ", version=" + mVersion + ", twoway=" + mTwoWay + ", event=" + mEvent diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/DefaultFuture.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/DefaultFuture.java index e5acf6d54ea..7d4ad69f521 100644 --- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/DefaultFuture.java +++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/exchange/support/DefaultFuture.java @@ -152,7 +152,7 @@ public static void closeChannel(Channel channel) { disconnectResponse.setErrorMessage("Channel " + channel + " is inactive. Directly return the unFinished request : " + - future.getRequest()); + (logger.isDebugEnabled() ? future.getRequest() : future.getRequest().copyWithoutData())); DefaultFuture.received(channel, disconnectResponse); } } @@ -256,15 +256,10 @@ private String getTimeoutMessage(boolean scan) { + (sent > 0 ? " client elapsed: " + (sent - start) + " ms, server elapsed: " + (nowTimestamp - sent) : " elapsed: " + (nowTimestamp - start)) + " ms, timeout: " - + timeout + " ms, request: " + (logger.isDebugEnabled() ? request : getRequestWithoutData()) + ", channel: " + channel.getLocalAddress() + + timeout + " ms, request: " + (logger.isDebugEnabled() ? request : request.copyWithoutData()) + ", channel: " + channel.getLocalAddress() + " -> " + channel.getRemoteAddress(); } - private Request getRequestWithoutData() { - Request newRequest = request; - newRequest.setData(null); - return newRequest; - } private static class TimeoutCheckTask implements TimerTask {