From afb16571a4cd277ad76cc05cddd1efad1c3d8ea5 Mon Sep 17 00:00:00 2001 From: pansb Date: Fri, 31 Jul 2026 15:07:49 +0800 Subject: [PATCH] fix If the construction of the wrapped BufferedReader fails, is may not be closed properly. Moreover, the reader variable is declared within the try block and cannot be accessed in the finally block. --- .../engine/impl/bpmn/behavior/ShellActivityBehavior.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/modules/flowable-engine/src/main/java/org/flowable/engine/impl/bpmn/behavior/ShellActivityBehavior.java b/modules/flowable-engine/src/main/java/org/flowable/engine/impl/bpmn/behavior/ShellActivityBehavior.java index c6587262f89..e3a706a57d2 100644 --- a/modules/flowable-engine/src/main/java/org/flowable/engine/impl/bpmn/behavior/ShellActivityBehavior.java +++ b/modules/flowable-engine/src/main/java/org/flowable/engine/impl/bpmn/behavior/ShellActivityBehavior.java @@ -146,14 +146,11 @@ public static String convertStreamToStr(InputStream is) throws IOException { Writer writer = new StringWriter(); char[] buffer = new char[1024]; - try { - Reader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)); + try (Reader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) { int n; while ((n = reader.read(buffer)) != -1) { writer.write(buffer, 0, n); } - } finally { - is.close(); } return writer.toString(); } else {