This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/main by this push:
new 1c66ea6dfa Fix resource leaks in PlugInClassLoader and RMTxStore
(#2943)
1c66ea6dfa is described below
commit 1c66ea6dfa94a18e45e1347380629bfeb476097b
Author: Guillaume Nodet <[email protected]>
AuthorDate: Tue Mar 10 19:16:15 2026 +0100
Fix resource leaks in PlugInClassLoader and RMTxStore (#2943)
- Wrap InputStream in try-with-resources in
PlugInClassLoader.getProperties()
- Wrap ResultSet in try-with-resources in
RMTxStore.verifyTable()
Based on the valid parts of PR #2253 (CXF-9107).
Closes #2253
---
.../org/apache/cxf/jca/core/classloader/PlugInClassLoader.java | 4 +++-
.../main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java | 7 ++++---
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git
a/integration/jca/src/main/java/org/apache/cxf/jca/core/classloader/PlugInClassLoader.java
b/integration/jca/src/main/java/org/apache/cxf/jca/core/classloader/PlugInClassLoader.java
index c9ec4943df..45bd93a945 100644
---
a/integration/jca/src/main/java/org/apache/cxf/jca/core/classloader/PlugInClassLoader.java
+++
b/integration/jca/src/main/java/org/apache/cxf/jca/core/classloader/PlugInClassLoader.java
@@ -93,7 +93,9 @@ public class PlugInClassLoader extends SecureClassLoader {
Properties props = new Properties();
- props.load(in);
+ try (InputStream is = in) {
+ props.load(is);
+ }
LOG.fine("Contents: " + propsFileName + props);
return props;
diff --git
a/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java
b/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java
index 2f5ac77d82..726d07b79c 100644
---
a/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java
+++
b/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java
@@ -880,11 +880,12 @@ public class RMTxStore implements RMStore {
protected void verifyTable(Connection con, String tableName, String[][]
tableCols) {
try {
DatabaseMetaData metadata = con.getMetaData();
- ResultSet rs = metadata.getColumns(null, null, tableName, "%");
Set<String> dbCols = new HashSet<>();
List<String[]> newCols = new ArrayList<>();
- while (rs.next()) {
- dbCols.add(rs.getString(4));
+ try (ResultSet rs = metadata.getColumns(null, null, tableName,
"%")) {
+ while (rs.next()) {
+ dbCols.add(rs.getString(4));
+ }
}
for (String[] col : tableCols) {
if (!dbCols.contains(col[0])) {