Преглед на файлове

AMBARI-12165 Don't overwrite Statement variable before previous statement is closed (dsen)

Dmytro Sen преди 10 години
родител
ревизия
d94a5da8fd
променени са 1 файла, в които са добавени 6 реда и са изтрити 2 реда
  1. 6 2
      ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java

+ 6 - 2
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java

@@ -886,9 +886,11 @@ public class UpgradeCatalog210 extends AbstractUpgradeCatalog {
         HOSTS_TABLE, HOST_ID_COL, CLUSTER_HOST_MAPPING_TABLE);
         HOSTS_TABLE, HOST_ID_COL, CLUSTER_HOST_MAPPING_TABLE);
     ResultSet hostsNotInCluster = null;
     ResultSet hostsNotInCluster = null;
     Statement statement = null;
     Statement statement = null;
+    Statement duplicatedHostsStatement = null;
 
 
     try {
     try {
       statement = dbAccessor.getConnection().createStatement();
       statement = dbAccessor.getConnection().createStatement();
+      duplicatedHostsStatement = dbAccessor.getConnection().createStatement();
       hostsNotInCluster = statement.executeQuery(hostsNotInClusterQuery);
       hostsNotInCluster = statement.executeQuery(hostsNotInClusterQuery);
       if(hostsNotInCluster != null) {
       if(hostsNotInCluster != null) {
         while (hostsNotInCluster.next()) {
         while (hostsNotInCluster.next()) {
@@ -898,8 +900,7 @@ public class UpgradeCatalog210 extends AbstractUpgradeCatalog {
           long count = 0;
           long count = 0;
           ResultSet duplicateHosts = null;
           ResultSet duplicateHosts = null;
           try {
           try {
-            statement = dbAccessor.getConnection().createStatement();
-            duplicateHosts = statement.executeQuery(duplicateHostsQuery);
+            duplicateHosts = duplicatedHostsStatement.executeQuery(duplicateHostsQuery);
             if (duplicateHosts != null && duplicateHosts.next()) {
             if (duplicateHosts != null && duplicateHosts.next()) {
               count = duplicateHosts.getLong(1);
               count = duplicateHosts.getLong(1);
             }
             }
@@ -924,6 +925,9 @@ public class UpgradeCatalog210 extends AbstractUpgradeCatalog {
       if (statement != null) {
       if (statement != null) {
         statement.close();
         statement.close();
       }
       }
+      if (duplicatedHostsStatement != null) {
+        duplicatedHostsStatement.close();
+      }
     }
     }
   }
   }