Repository: nifi
Updated Branches:
  refs/heads/NIFI-655 48c65e049 -> e61a36908


NIFI-655:
- Fixing issue detecting the presence of DN column

Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/91573cb8
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/91573cb8
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/91573cb8

Branch: refs/heads/NIFI-655
Commit: 91573cb807f6399cebb8ce8d19fad1758578811c
Parents: 48c65e0
Author: Matt Gilman <[email protected]>
Authored: Mon Nov 23 08:45:24 2015 -0500
Committer: Matt Gilman <[email protected]>
Committed: Mon Nov 23 08:45:24 2015 -0500

----------------------------------------------------------------------
 .../nifi/admin/AuditDataSourceFactoryBean.java    | 18 ++++--------------
 .../nifi/admin/UserDataSourceFactoryBean.java     | 18 ++++--------------
 2 files changed, 8 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/91573cb8/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/AuditDataSourceFactoryBean.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/AuditDataSourceFactoryBean.java
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/AuditDataSourceFactoryBean.java
index 7e68799..87cd420 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/AuditDataSourceFactoryBean.java
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/AuditDataSourceFactoryBean.java
@@ -19,7 +19,6 @@ package org.apache.nifi.admin;
 import java.io.File;
 import java.sql.Connection;
 import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
 import java.sql.Statement;
 import org.apache.commons.lang3.StringUtils;
@@ -176,10 +175,11 @@ public class AuditDataSourceFactoryBean implements 
FactoryBean {
                     statement.execute(CREATE_PURGE_DETAILS_TABLE);
                 } else {
                     logger.info("Existing database found and connected to at: 
" + databaseUrl);
+                    RepositoryUtils.closeQuietly(rs);
 
-                    // get the RS metadata to see if we need to transform the 
table
-                    final ResultSetMetaData rsMetadata = rs.getMetaData();
-                    if (hasDnColumn(rsMetadata)) {
+                    // check if the DN column exists to see if we need to 
transform the table
+                    rs = connection.getMetaData().getColumns(null, null, 
"ACTION", "USER_DN");
+                    if (rs.next()) {
                         statement.execute(RENAME_DN_COLUMN);
                         statement.execute(RESIZE_IDENTITY_COLUMN);
                         statement.execute(RESIZE_USER_NAME_COLUMN);
@@ -201,16 +201,6 @@ public class AuditDataSourceFactoryBean implements 
FactoryBean {
         return connectionPool;
     }
 
-    private boolean hasDnColumn(final ResultSetMetaData rsMetadata) throws 
SQLException {
-        boolean hasDn = false;
-        for (int i = 1; i <= rsMetadata.getColumnCount() && !hasDn; i++) {
-            if ("USER_DN".equals(rsMetadata.getColumnName(i))) {
-                hasDn = true;
-            }
-        }
-        return hasDn;
-    }
-
     @Override
     public Class getObjectType() {
         return JdbcConnectionPool.class;

http://git-wip-us.apache.org/repos/asf/nifi/blob/91573cb8/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/UserDataSourceFactoryBean.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/UserDataSourceFactoryBean.java
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/UserDataSourceFactoryBean.java
index acd3449..6d8566e 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/UserDataSourceFactoryBean.java
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/src/main/java/org/apache/nifi/admin/UserDataSourceFactoryBean.java
@@ -19,7 +19,6 @@ package org.apache.nifi.admin;
 import java.io.File;
 import java.sql.Connection;
 import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.HashSet;
@@ -151,10 +150,11 @@ public class UserDataSourceFactoryBean implements 
FactoryBean {
                     statement.execute(INSERT_ANONYMOUS_USER);
                 } else {
                     logger.info("Existing database found and connected to at: 
" + databaseUrl);
+                    RepositoryUtils.closeQuietly(rs);
 
-                    // get the RS metadata to see if we need to transform the 
table
-                    final ResultSetMetaData rsMetadata = rs.getMetaData();
-                    if (hasDnColumn(rsMetadata)) {
+                    // if the DN column exists, transform the table
+                    rs = connection.getMetaData().getColumns(null, null, 
"USER", "DN");
+                    if (rs.next()) {
                         statement.execute(RENAME_DN_COLUMN);
                         statement.execute(RESIZE_IDENTITY_COLUMN);
                         statement.execute(RESIZE_USER_NAME_COLUMN);
@@ -184,16 +184,6 @@ public class UserDataSourceFactoryBean implements 
FactoryBean {
         return connectionPool;
     }
 
-    private boolean hasDnColumn(final ResultSetMetaData rsMetadata) throws 
SQLException {
-        boolean hasDn = false;
-        for (int i = 1; i <= rsMetadata.getColumnCount() && !hasDn; i++) {
-            if ("DN".equals(rsMetadata.getColumnName(i))) {
-                hasDn = true;
-            }
-        }
-        return hasDn;
-    }
-
     private String getDatabaseUrl(File databaseFile) {
         String databaseUrl = "jdbc:h2:" + databaseFile + 
";AUTOCOMMIT=OFF;DB_CLOSE_ON_EXIT=FALSE;LOCK_MODE=3";
         String databaseUrlAppend = 
properties.getProperty(NiFiProperties.H2_URL_APPEND);

Reply via email to