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

reta pushed a commit to branch 4.0.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git

commit bfe4b2e344484d5111012e198fb539d7b09f4518
Author: Xu Chengxin <[email protected]>
AuthorDate: Fri Jun 13 02:19:41 2025 +0800

    Fix some potential resource leaks (#2455)
    
    * Fix some potential resource leaks
    
    * Update TLSParameterJaxBUtils.java
    
    ---------
    
    Co-authored-by: xcx <[email protected]>
    (cherry picked from commit 805eaa78a566e338c23b7ec630e304d0b068e354)
---
 .../apache/cxf/attachment/ImageDataContentHandler.java    | 15 ++++++++-------
 .../cxf/configuration/jsse/TLSParameterJaxBUtils.java     | 15 ++++++++-------
 .../org/apache/cxf/interceptor/LoggingInInterceptor.java  |  4 +---
 3 files changed, 17 insertions(+), 17 deletions(-)

diff --git 
a/core/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java 
b/core/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java
index ff37eaaad0..c67aae098c 100644
--- a/core/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java
+++ b/core/src/main/java/org/apache/cxf/attachment/ImageDataContentHandler.java
@@ -84,13 +84,14 @@ public class ImageDataContentHandler implements 
DataContentHandler {
             if (writers.hasNext()) {
                 ImageWriter writer = writers.next();
 
-                BufferedImage bimg = convertToBufferedImage((Image)obj);
-                ImageOutputStream out = ImageIO.createImageOutputStream(os);
-                writer.setOutput(out);
-                writer.write(bimg);
-                writer.dispose();
-                out.flush();
-                out.close();
+                try (ImageOutputStream out = 
ImageIO.createImageOutputStream(os)) {
+                    writer.setOutput(out);
+                    BufferedImage bimg = convertToBufferedImage((Image) obj);
+                    writer.write(bimg);
+                    out.flush();
+                } finally {
+                    writer.dispose();
+                }
                 return;
             }
         } else if (obj instanceof byte[]) {
diff --git 
a/core/src/main/java/org/apache/cxf/configuration/jsse/TLSParameterJaxBUtils.java
 
b/core/src/main/java/org/apache/cxf/configuration/jsse/TLSParameterJaxBUtils.java
index 3e8e3ba8af..9dc81b1236 100644
--- 
a/core/src/main/java/org/apache/cxf/configuration/jsse/TLSParameterJaxBUtils.java
+++ 
b/core/src/main/java/org/apache/cxf/configuration/jsse/TLSParameterJaxBUtils.java
@@ -153,14 +153,15 @@ public final class TLSParameterJaxBUtils {
                 keyStore.load(kstInputStream, password);
             }
         } else if (kst.isSetResource()) {
-            final InputStream is = getResourceAsStream(kst.getResource());
-            if (is == null) {
-                final String msg =
-                    "Could not load keystore resource " + kst.getResource();
-                LOG.severe(msg);
-                throw new IOException(msg);
+            try (InputStream is = getResourceAsStream(kst.getResource())) {
+                if (is == null) {
+                    final String msg =
+                            "Could not load keystore resource " + 
kst.getResource();
+                    LOG.severe(msg);
+                    throw new IOException(msg);
+                }
+                keyStore.load(is, password);
             }
-            keyStore.load(is, password);
         } else if (kst.isSetUrl()) {
             keyStore.load(new URL(kst.getUrl()).openStream(), password);
         } else {
diff --git 
a/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java 
b/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java
index 5b1d6a36e8..1975d685cb 100644
--- a/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java
+++ b/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java
@@ -169,8 +169,7 @@ public class LoggingInInterceptor extends 
AbstractLoggingInterceptor {
     }
 
     protected void logReader(Message message, Reader reader, LoggingMessage 
buffer) {
-        try {
-            CachedWriter writer = new CachedWriter();
+        try (CachedWriter writer = new CachedWriter()) {
             IOUtils.copyAndCloseInput(reader, writer);
             message.setContent(Reader.class, writer.getReader());
 
@@ -183,7 +182,6 @@ public class LoggingInInterceptor extends 
AbstractLoggingInterceptor {
                 buffer.getMessage().append("(message truncated to 
").append(limit).append(" bytes)\n");
             }
             writer.writeCacheTo(buffer.getPayload(), limit);
-            writer.close();
         } catch (Exception e) {
             throw new Fault(e);
         }

Reply via email to