You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by li...@apache.org on 2023/05/21 01:29:16 UTC

[tomcat] branch 10.1.x updated: Revert "Clear SocketWrapper reference to help GC"

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

lihan pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/10.1.x by this push:
     new 47b57c32ac Revert "Clear SocketWrapper reference to help GC"
47b57c32ac is described below

commit 47b57c32acdbe953b8b66b08b62db6416985415e
Author: lihan <li...@apache.org>
AuthorDate: Sun May 21 09:28:59 2023 +0800

    Revert "Clear SocketWrapper reference to help GC"
    
    This reverts commit 2b65532cafe4b9eedb588b45aa8570cfc03c165e.
---
 java/org/apache/coyote/AbstractProcessor.java      | 3 ---
 java/org/apache/coyote/http11/Http11Processor.java | 1 +
 java/org/apache/coyote/http2/StreamProcessor.java  | 6 +++++-
 java/org/apache/tomcat/util/net/Nio2Channel.java   | 1 -
 java/org/apache/tomcat/util/net/NioChannel.java    | 1 -
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/java/org/apache/coyote/AbstractProcessor.java b/java/org/apache/coyote/AbstractProcessor.java
index d14224702c..ece5a6abda 100644
--- a/java/org/apache/coyote/AbstractProcessor.java
+++ b/java/org/apache/coyote/AbstractProcessor.java
@@ -717,9 +717,6 @@ public abstract class AbstractProcessor extends AbstractProcessorLight implement
     public void recycle() {
         errorState = ErrorState.NONE;
         asyncStateMachine.recycle();
-        // Clear fields that can be cleared to aid GC and trigger NPEs if this
-        // is reused
-        socketWrapper = null;
     }
 
 
diff --git a/java/org/apache/coyote/http11/Http11Processor.java b/java/org/apache/coyote/http11/Http11Processor.java
index cb03b4fa41..db2286d2b0 100644
--- a/java/org/apache/coyote/http11/Http11Processor.java
+++ b/java/org/apache/coyote/http11/Http11Processor.java
@@ -1420,6 +1420,7 @@ public class Http11Processor extends AbstractProcessor {
         inputBuffer.recycle();
         outputBuffer.recycle();
         upgradeToken = null;
+        socketWrapper = null;
         sendfileData = null;
         sslSupport = null;
     }
diff --git a/java/org/apache/coyote/http2/StreamProcessor.java b/java/org/apache/coyote/http2/StreamProcessor.java
index f76fbfa788..d08c875cbd 100644
--- a/java/org/apache/coyote/http2/StreamProcessor.java
+++ b/java/org/apache/coyote/http2/StreamProcessor.java
@@ -385,8 +385,8 @@ class StreamProcessor extends AbstractProcessor {
 
     @Override
     public final void recycle() {
-        super.recycle();
         // StreamProcessor instances are not re-used.
+
         // Calling removeRequestProcessor even though the RequestProcesser was
         // never added will add the values from the RequestProcessor to the
         // running total for the GlobalRequestProcessor
@@ -394,6 +394,10 @@ class StreamProcessor extends AbstractProcessor {
         if (global != null) {
             global.removeRequestProcessor(request.getRequestProcessor());
         }
+
+        // Clear fields that can be cleared to aid GC and trigger NPEs if this
+        // is reused
+        setSocketWrapper(null);
     }
 
 
diff --git a/java/org/apache/tomcat/util/net/Nio2Channel.java b/java/org/apache/tomcat/util/net/Nio2Channel.java
index 9d65266374..603c43f416 100644
--- a/java/org/apache/tomcat/util/net/Nio2Channel.java
+++ b/java/org/apache/tomcat/util/net/Nio2Channel.java
@@ -79,7 +79,6 @@ public class Nio2Channel implements AsynchronousByteChannel {
     @Override
     public void close() throws IOException {
         sc.close();
-        reset(this.sc, null);
     }
 
 
diff --git a/java/org/apache/tomcat/util/net/NioChannel.java b/java/org/apache/tomcat/util/net/NioChannel.java
index eae3f51171..d263ce9ae6 100644
--- a/java/org/apache/tomcat/util/net/NioChannel.java
+++ b/java/org/apache/tomcat/util/net/NioChannel.java
@@ -81,7 +81,6 @@ public class NioChannel implements ByteChannel, ScatteringByteChannel, Gathering
     @Override
     public void close() throws IOException {
         sc.close();
-        reset(this.sc,null);
     }
 
     /**


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org