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

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


The following commit(s) were added to refs/heads/11.0.x by this push:
     new 3b64a64631 Avoid try with resources, since this messes up testing in 
particular
3b64a64631 is described below

commit 3b64a6463159b97bf4b6a48a3a5a6f47dc731ede
Author: remm <[email protected]>
AuthorDate: Tue May 26 20:11:42 2026 +0200

    Avoid try with resources, since this messes up testing in particular
    
    Testing uses closeConnection as a noop. Also closeConnection does more
    than simply close the connection (in theory).
    Align the pattern of the other get iterations to use closeConnection,
    for consistency.
---
 .../catalina/users/DataSourceUserDatabase.java     | 87 +++++++++++-----------
 .../catalina/users/TestDataSourceUserDatabase.java |  3 +
 2 files changed, 48 insertions(+), 42 deletions(-)

diff --git a/java/org/apache/catalina/users/DataSourceUserDatabase.java 
b/java/org/apache/catalina/users/DataSourceUserDatabase.java
index 61b78fed3f..a66964b0f0 100644
--- a/java/org/apache/catalina/users/DataSourceUserDatabase.java
+++ b/java/org/apache/catalina/users/DataSourceUserDatabase.java
@@ -542,26 +542,27 @@ public class DataSourceUserDatabase extends 
SparseUserDatabase {
                 groups.putAll(createdGroups);
                 groups.putAll(modifiedGroups);
 
-                try (Connection dbConnection = openConnection()) {
-                    if (dbConnection != null && preparedAllGroups != null) {
-                        try (PreparedStatement stmt = 
dbConnection.prepareStatement(preparedAllGroups)) {
-                            try (ResultSet rs = stmt.executeQuery()) {
-                                while (rs.next()) {
-                                    String groupName = rs.getString(1);
-                                    if (groupName != null) {
-                                        if (!groups.containsKey(groupName) && 
!removedGroups.containsKey(groupName)) {
-                                            Group group = 
findGroupInternal(dbConnection, groupName);
-                                            if (group != null) {
-                                                groups.put(groupName, group);
-                                            }
+                Connection dbConnection = openConnection();
+                if (dbConnection != null && preparedAllGroups != null) {
+                    try (PreparedStatement stmt = 
dbConnection.prepareStatement(preparedAllGroups)) {
+                        try (ResultSet rs = stmt.executeQuery()) {
+                            while (rs.next()) {
+                                String groupName = rs.getString(1);
+                                if (groupName != null) {
+                                    if (!groups.containsKey(groupName) && 
!removedGroups.containsKey(groupName)) {
+                                        Group group = 
findGroupInternal(dbConnection, groupName);
+                                        if (group != null) {
+                                            groups.put(groupName, group);
                                         }
                                     }
                                 }
                             }
                         }
+                    } catch (SQLException e) {
+                        
log.error(sm.getString("dataSourceUserDatabase.exception"), e);
+                    } finally {
+                        closeConnection(dbConnection);
                     }
-                } catch (SQLException e) {
-                    
log.error(sm.getString("dataSourceUserDatabase.exception"), e);
                 }
                 return groups.values().iterator();
             } finally {
@@ -582,26 +583,27 @@ public class DataSourceUserDatabase extends 
SparseUserDatabase {
                 roles.putAll(createdRoles);
                 roles.putAll(modifiedRoles);
 
-                try (Connection dbConnection = openConnection()) {
-                    if (dbConnection != null && preparedAllRoles != null) {
-                        try (PreparedStatement stmt = 
dbConnection.prepareStatement(preparedAllRoles)) {
-                            try (ResultSet rs = stmt.executeQuery()) {
-                                while (rs.next()) {
-                                    String roleName = rs.getString(1);
-                                    if (roleName != null) {
-                                        if (!roles.containsKey(roleName) && 
!removedRoles.containsKey(roleName)) {
-                                            Role role = 
findRoleInternal(dbConnection, roleName);
-                                            if (role != null) {
-                                                roles.put(roleName, role);
-                                            }
+                Connection dbConnection = openConnection();
+                if (dbConnection != null && preparedAllRoles != null) {
+                    try (PreparedStatement stmt = 
dbConnection.prepareStatement(preparedAllRoles)) {
+                        try (ResultSet rs = stmt.executeQuery()) {
+                            while (rs.next()) {
+                                String roleName = rs.getString(1);
+                                if (roleName != null) {
+                                    if (!roles.containsKey(roleName) && 
!removedRoles.containsKey(roleName)) {
+                                        Role role = 
findRoleInternal(dbConnection, roleName);
+                                        if (role != null) {
+                                            roles.put(roleName, role);
                                         }
                                     }
                                 }
                             }
                         }
+                    } catch (SQLException e) {
+                        
log.error(sm.getString("dataSourceUserDatabase.exception"), e);
+                    } finally {
+                        closeConnection(dbConnection);
                     }
-                } catch (SQLException e) {
-                    
log.error(sm.getString("dataSourceUserDatabase.exception"), e);
                 }
                 return roles.values().iterator();
             } finally {
@@ -622,26 +624,27 @@ public class DataSourceUserDatabase extends 
SparseUserDatabase {
                 users.putAll(createdUsers);
                 users.putAll(modifiedUsers);
 
-                try (Connection dbConnection = openConnection()) {
-                    if (dbConnection != null) {
-                        try (PreparedStatement stmt = 
dbConnection.prepareStatement(preparedAllUsers)) {
-                            try (ResultSet rs = stmt.executeQuery()) {
-                                while (rs.next()) {
-                                    String userName = rs.getString(1);
-                                    if (userName != null) {
-                                        if (!users.containsKey(userName) && 
!removedUsers.containsKey(userName)) {
-                                            User user = 
findUserInternal(dbConnection, userName);
-                                            if (user != null) {
-                                                users.put(userName, user);
-                                            }
+                Connection dbConnection = openConnection();
+                if (dbConnection != null) {
+                    try (PreparedStatement stmt = 
dbConnection.prepareStatement(preparedAllUsers)) {
+                        try (ResultSet rs = stmt.executeQuery()) {
+                            while (rs.next()) {
+                                String userName = rs.getString(1);
+                                if (userName != null) {
+                                    if (!users.containsKey(userName) && 
!removedUsers.containsKey(userName)) {
+                                        User user = 
findUserInternal(dbConnection, userName);
+                                        if (user != null) {
+                                            users.put(userName, user);
                                         }
                                     }
                                 }
                             }
                         }
+                    } catch (SQLException e) {
+                        
log.error(sm.getString("dataSourceUserDatabase.exception"), e);
+                    } finally {
+                        closeConnection(dbConnection);
                     }
-                } catch (SQLException e) {
-                    
log.error(sm.getString("dataSourceUserDatabase.exception"), e);
                 }
                 return users.values().iterator();
             } finally {
diff --git a/test/org/apache/catalina/users/TestDataSourceUserDatabase.java 
b/test/org/apache/catalina/users/TestDataSourceUserDatabase.java
index ff09d226b2..d3908d9b51 100644
--- a/test/org/apache/catalina/users/TestDataSourceUserDatabase.java
+++ b/test/org/apache/catalina/users/TestDataSourceUserDatabase.java
@@ -156,6 +156,9 @@ public class TestDataSourceUserDatabase extends 
LoggingBaseTest {
         Assert.assertFalse("Unexpected role for user", 
tomcatUser.isInRole(managerRole));
         Assert.assertNull(db.findUser("foo"));
 
+        Iterator<Role> roles = db.getRoles();
+        Assert.assertTrue("No roles found", roles.hasNext());
+
         db.close();
 
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to