You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2018/04/17 14:38:59 UTC

[2/2] activemq-artemis git commit: ARTEMIS-1806 JDBC Connection leaks

ARTEMIS-1806 JDBC Connection leaks

The JDBC Connection leaks on:
- JDBCFileUtils::getDBFileDriver(DataSource, SQLProvider)
- SharedStoreBackupActivation.FailbackChecker::run on a failed awaitLiveStatus


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/bbb2f708
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/bbb2f708
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/bbb2f708

Branch: refs/heads/master
Commit: bbb2f708dd86d681a02237aa1b7c366668af37d4
Parents: 1118bdb
Author: Francesco Nigro <ni...@gmail.com>
Authored: Sat Apr 14 10:37:34 2018 +0200
Committer: Clebert Suconic <cl...@apache.org>
Committed: Tue Apr 17 10:38:53 2018 -0400

----------------------------------------------------------------------
 .../activemq/artemis/jdbc/store/file/JDBCFileUtils.java      | 8 ++++++--
 .../core/server/impl/SharedStoreBackupActivation.java        | 7 +++++--
 2 files changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/bbb2f708/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCFileUtils.java
----------------------------------------------------------------------
diff --git a/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCFileUtils.java b/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCFileUtils.java
index 5834852..803584b 100644
--- a/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCFileUtils.java
+++ b/artemis-jdbc-store/src/main/java/org/apache/activemq/artemis/jdbc/store/file/JDBCFileUtils.java
@@ -44,8 +44,12 @@ class JDBCFileUtils {
    }
 
    static JDBCSequentialFileFactoryDriver getDBFileDriver(DataSource dataSource, SQLProvider provider) throws SQLException {
-      JDBCSequentialFileFactoryDriver dbDriver;
-      if (POSTGRESQL.equals(PropertySQLProvider.Factory.investigateDialect(dataSource.getConnection()))) {
+      final JDBCSequentialFileFactoryDriver dbDriver;
+      final PropertySQLProvider.Factory.SQLDialect sqlDialect;
+      try (Connection connection = dataSource.getConnection()) {
+         sqlDialect = PropertySQLProvider.Factory.investigateDialect(connection);
+      }
+      if (POSTGRESQL.equals(sqlDialect)) {
          dbDriver = new PostgresSequentialSequentialFileDriver(dataSource, provider);
       } else {
          dbDriver = new JDBCSequentialFileFactoryDriver(dataSource, provider);

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/bbb2f708/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/SharedStoreBackupActivation.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/SharedStoreBackupActivation.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/SharedStoreBackupActivation.java
index 913cc7b..383f93f 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/SharedStoreBackupActivation.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/SharedStoreBackupActivation.java
@@ -215,8 +215,11 @@ public final class SharedStoreBackupActivation extends Activation {
 
                            // ensure that the server to which we are failing back actually starts fully before we restart
                            nodeManager.start();
-                           nodeManager.awaitLiveStatus();
-                           nodeManager.stop();
+                           try {
+                              nodeManager.awaitLiveStatus();
+                           } finally {
+                              nodeManager.stop();
+                           }
 
                            synchronized (failbackCheckerGuard) {
                               if (cancelFailBackChecker || !sharedStoreSlavePolicy.isRestartBackup())