mirror of https://github.com/apache/nifi.git
NIFI-655:
- Fixing issue detecting the presence of DN column
This commit is contained in:
parent
48c65e0498
commit
91573cb807
|
@ -19,7 +19,6 @@ package org.apache.nifi.admin;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.ResultSetMetaData;
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
import java.sql.Statement;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
@ -176,10 +175,11 @@ public class AuditDataSourceFactoryBean implements FactoryBean {
|
||||||
statement.execute(CREATE_PURGE_DETAILS_TABLE);
|
statement.execute(CREATE_PURGE_DETAILS_TABLE);
|
||||||
} else {
|
} else {
|
||||||
logger.info("Existing database found and connected to at: " + databaseUrl);
|
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
|
// check if the DN column exists to see if we need to transform the table
|
||||||
final ResultSetMetaData rsMetadata = rs.getMetaData();
|
rs = connection.getMetaData().getColumns(null, null, "ACTION", "USER_DN");
|
||||||
if (hasDnColumn(rsMetadata)) {
|
if (rs.next()) {
|
||||||
statement.execute(RENAME_DN_COLUMN);
|
statement.execute(RENAME_DN_COLUMN);
|
||||||
statement.execute(RESIZE_IDENTITY_COLUMN);
|
statement.execute(RESIZE_IDENTITY_COLUMN);
|
||||||
statement.execute(RESIZE_USER_NAME_COLUMN);
|
statement.execute(RESIZE_USER_NAME_COLUMN);
|
||||||
|
@ -201,16 +201,6 @@ public class AuditDataSourceFactoryBean implements FactoryBean {
|
||||||
return connectionPool;
|
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
|
@Override
|
||||||
public Class getObjectType() {
|
public Class getObjectType() {
|
||||||
return JdbcConnectionPool.class;
|
return JdbcConnectionPool.class;
|
||||||
|
|
|
@ -19,7 +19,6 @@ package org.apache.nifi.admin;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.ResultSetMetaData;
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
import java.sql.Statement;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
@ -151,10 +150,11 @@ public class UserDataSourceFactoryBean implements FactoryBean {
|
||||||
statement.execute(INSERT_ANONYMOUS_USER);
|
statement.execute(INSERT_ANONYMOUS_USER);
|
||||||
} else {
|
} else {
|
||||||
logger.info("Existing database found and connected to at: " + databaseUrl);
|
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
|
// if the DN column exists, transform the table
|
||||||
final ResultSetMetaData rsMetadata = rs.getMetaData();
|
rs = connection.getMetaData().getColumns(null, null, "USER", "DN");
|
||||||
if (hasDnColumn(rsMetadata)) {
|
if (rs.next()) {
|
||||||
statement.execute(RENAME_DN_COLUMN);
|
statement.execute(RENAME_DN_COLUMN);
|
||||||
statement.execute(RESIZE_IDENTITY_COLUMN);
|
statement.execute(RESIZE_IDENTITY_COLUMN);
|
||||||
statement.execute(RESIZE_USER_NAME_COLUMN);
|
statement.execute(RESIZE_USER_NAME_COLUMN);
|
||||||
|
@ -184,16 +184,6 @@ public class UserDataSourceFactoryBean implements FactoryBean {
|
||||||
return connectionPool;
|
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) {
|
private String getDatabaseUrl(File databaseFile) {
|
||||||
String databaseUrl = "jdbc:h2:" + databaseFile + ";AUTOCOMMIT=OFF;DB_CLOSE_ON_EXIT=FALSE;LOCK_MODE=3";
|
String databaseUrl = "jdbc:h2:" + databaseFile + ";AUTOCOMMIT=OFF;DB_CLOSE_ON_EXIT=FALSE;LOCK_MODE=3";
|
||||||
String databaseUrlAppend = properties.getProperty(NiFiProperties.H2_URL_APPEND);
|
String databaseUrlAppend = properties.getProperty(NiFiProperties.H2_URL_APPEND);
|
||||||
|
|
Loading…
Reference in New Issue