You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2024/11/21 20:11:36 UTC

(commons-dbcp) 02/02: Return a set with predictable iteration order from BasicDataSource.setDisconnectionSqlCodes(Collection)

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

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-dbcp.git

commit 4e780c7e96a1679a8fdef5490b1d62cd673071e5
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Nov 21 15:10:05 2024 -0500

    Return a set with predictable iteration order from
    BasicDataSource.setDisconnectionSqlCodes(Collection<String>)
---
 src/main/java/org/apache/commons/dbcp2/BasicDataSource.java | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java b/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
index bf952364..259835df 100644
--- a/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
+++ b/src/main/java/org/apache/commons/dbcp2/BasicDataSource.java
@@ -37,6 +37,7 @@ import java.util.Properties;
 import java.util.Set;
 import java.util.function.BiConsumer;
 import java.util.logging.Logger;
+import java.util.stream.Collector;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -2005,7 +2006,7 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean
     public void setDisconnectionIgnoreSqlCodes(final Collection<String> disconnectionIgnoreSqlCodes) {
         Utils.checkSqlCodes(disconnectionIgnoreSqlCodes, this.disconnectionSqlCodes);
         final Set<String> collect = Utils.isEmpty(disconnectionIgnoreSqlCodes) ? null
-                : disconnectionIgnoreSqlCodes.stream().filter(s -> !isEmpty(s)).collect(Collectors.toCollection(LinkedHashSet::new));
+                : disconnectionIgnoreSqlCodes.stream().filter(s -> !isEmpty(s)).collect(toLinkedHashSet());
         this.disconnectionIgnoreSqlCodes = Utils.isEmpty(collect) ? null : collect;
     }
 
@@ -2034,7 +2035,7 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean
     public void setDisconnectionSqlCodes(final Collection<String> disconnectionSqlCodes) {
         Utils.checkSqlCodes(disconnectionSqlCodes, this.disconnectionIgnoreSqlCodes);
         final Set<String> collect = Utils.isEmpty(disconnectionSqlCodes) ? null
-                : disconnectionSqlCodes.stream().filter(s -> !isEmpty(s)).collect(Collectors.toSet());
+                : disconnectionSqlCodes.stream().filter(s -> !isEmpty(s)).collect(toLinkedHashSet());
         this.disconnectionSqlCodes = Utils.isEmpty(collect) ? null : collect;
     }
 
@@ -2653,6 +2654,10 @@ public class BasicDataSource implements DataSource, BasicDataSourceMXBean, MBean
         }
     }
 
+    private Collector<String, ?, LinkedHashSet<String>> toLinkedHashSet() {
+        return Collectors.toCollection(LinkedHashSet::new);
+    }
+
     @Override
     public <T> T unwrap(final Class<T> iface) throws SQLException {
         if (isWrapperFor(iface)) {