Polishing

This commit is contained in:
Juergen Hoeller
2014-07-29 10:10:48 +02:00
parent daaeeaa8e2
commit c0a4631fd1
56 changed files with 845 additions and 794 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -72,26 +72,34 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
try {
setSupportsCatalogsInProcedureCalls(databaseMetaData.supportsCatalogsInProcedureCalls());
}
catch (SQLException se) {
logger.warn("Error retrieving 'DatabaseMetaData.supportsCatalogsInProcedureCalls' - " + se.getMessage());
catch (SQLException ex) {
if (logger.isWarnEnabled()) {
logger.warn("Error retrieving 'DatabaseMetaData.supportsCatalogsInProcedureCalls' - " + ex.getMessage());
}
}
try {
setSupportsSchemasInProcedureCalls(databaseMetaData.supportsSchemasInProcedureCalls());
}
catch (SQLException se) {
logger.warn("Error retrieving 'DatabaseMetaData.supportsSchemasInProcedureCalls' - " + se.getMessage());
catch (SQLException ex) {
if (logger.isWarnEnabled()) {
logger.warn("Error retrieving 'DatabaseMetaData.supportsSchemasInProcedureCalls' - " + ex.getMessage());
}
}
try {
setStoresUpperCaseIdentifiers(databaseMetaData.storesUpperCaseIdentifiers());
}
catch (SQLException se) {
logger.warn("Error retrieving 'DatabaseMetaData.storesUpperCaseIdentifiers' - " + se.getMessage());
catch (SQLException ex) {
if (logger.isWarnEnabled()) {
logger.warn("Error retrieving 'DatabaseMetaData.storesUpperCaseIdentifiers' - " + ex.getMessage());
}
}
try {
setStoresLowerCaseIdentifiers(databaseMetaData.storesLowerCaseIdentifiers());
}
catch (SQLException se) {
logger.warn("Error retrieving 'DatabaseMetaData.storesLowerCaseIdentifiers' - " + se.getMessage());
catch (SQLException ex) {
if (logger.isWarnEnabled()) {
logger.warn("Error retrieving 'DatabaseMetaData.storesLowerCaseIdentifiers' - " + ex.getMessage());
}
}
}
@@ -113,7 +121,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
else if (isStoresUpperCaseIdentifiers()) {
return procedureName.toUpperCase();
}
else if(isStoresLowerCaseIdentifiers()) {
else if (isStoresLowerCaseIdentifiers()) {
return procedureName.toLowerCase();
}
else {
@@ -128,7 +136,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
else if (isStoresUpperCaseIdentifiers()) {
return catalogName.toUpperCase();
}
else if(isStoresLowerCaseIdentifiers()) {
else if (isStoresLowerCaseIdentifiers()) {
return catalogName.toLowerCase();
}
else {
@@ -143,7 +151,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
else if (isStoresUpperCaseIdentifiers()) {
return schemaName.toUpperCase();
}
else if(isStoresLowerCaseIdentifiers()) {
else if (isStoresLowerCaseIdentifiers()) {
return schemaName.toLowerCase();
}
else {
@@ -176,7 +184,7 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
else if (isStoresUpperCaseIdentifiers()) {
return parameterName.toUpperCase();
}
else if(isStoresLowerCaseIdentifiers()) {
else if (isStoresLowerCaseIdentifiers()) {
return parameterName.toLowerCase();
}
else {
@@ -321,12 +329,8 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
columnType == DatabaseMetaData.procedureColumnInOut ||
columnType == DatabaseMetaData.procedureColumnOut)) {
if (logger.isDebugEnabled()) {
logger.debug("Skipping metadata for: "
+ columnName +
" " + columnType +
" " + procs.getInt("DATA_TYPE") +
" " + procs.getString("TYPE_NAME") +
" " + procs.getBoolean("NULLABLE") +
logger.debug("Skipping metadata for: " + columnType + " " + procs.getInt("DATA_TYPE") +
" " + procs.getString("TYPE_NAME") + " " + procs.getBoolean("NULLABLE") +
" (probably a member of a collection)"
);
}
@@ -335,18 +339,19 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
CallParameterMetaData meta = new CallParameterMetaData(columnName, columnType,
procs.getInt("DATA_TYPE"), procs.getString("TYPE_NAME"), procs.getBoolean("NULLABLE")
);
callParameterMetaData.add(meta);
this.callParameterMetaData.add(meta);
if (logger.isDebugEnabled()) {
logger.debug("Retrieved metadata: " + meta.getParameterName() + " " +
meta.getParameterType() + " " + meta.getSqlType() +
" " + meta.getTypeName() + " " + meta.isNullable()
);
meta.getParameterType() + " " + meta.getSqlType() + " " +
meta.getTypeName() + " " + meta.isNullable());
}
}
}
}
catch (SQLException ex) {
logger.warn("Error while retrieving metadata for procedure columns: " + ex);
if (logger.isWarnEnabled()) {
logger.warn("Error while retrieving metadata for procedure columns: " + ex);
}
}
finally {
try {
@@ -355,7 +360,9 @@ public class GenericCallMetaDataProvider implements CallMetaDataProvider {
}
}
catch (SQLException ex) {
logger.warn("Problem closing ResultSet for procedure column metadata: " + ex);
if (logger.isWarnEnabled()) {
logger.warn("Problem closing ResultSet for procedure column metadata: " + ex);
}
}
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -85,34 +85,23 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
}
/**
* Specify whether identifiers use upper case
*/
public void setStoresUpperCaseIdentifiers(boolean storesUpperCaseIdentifiers) {
this.storesUpperCaseIdentifiers = storesUpperCaseIdentifiers;
}
/**
* Get whether identifiers use upper case
*/
public boolean isStoresUpperCaseIdentifiers() {
return this.storesUpperCaseIdentifiers;
}
/**
* Specify whether identifiers use lower case.
*/
public void setStoresLowerCaseIdentifiers(boolean storesLowerCaseIdentifiers) {
this.storesLowerCaseIdentifiers = storesLowerCaseIdentifiers;
}
/**
* Get whether identifiers use lower case
*/
public boolean isStoresLowerCaseIdentifiers() {
return this.storesLowerCaseIdentifiers;
}
public boolean isTableColumnMetaDataUsed() {
return this.tableColumnMetaDataUsed;
}
@@ -133,16 +122,10 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
return null;
}
/**
* Specify whether a column name array is supported for generated keys
*/
public void setGetGeneratedKeysSupported(boolean getGeneratedKeysSupported) {
this.getGeneratedKeysSupported = getGeneratedKeysSupported;
}
/**
* Specify whether a column name array is supported for generated keys
*/
public void setGeneratedKeysColumnNameArraySupported(boolean generatedKeysColumnNameArraySupported) {
this.generatedKeysColumnNameArraySupported = generatedKeysColumnNameArraySupported;
}
@@ -171,8 +154,8 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
setGetGeneratedKeysSupported(false);
}
}
catch (SQLException se) {
logger.warn("Error retrieving 'DatabaseMetaData.getGeneratedKeys' - " + se.getMessage());
catch (SQLException ex) {
logger.warn("Error retrieving 'DatabaseMetaData.getGeneratedKeys' - " + ex.getMessage());
}
try {
String databaseProductName = databaseMetaData.getDatabaseProductName();
@@ -190,26 +173,26 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
}
}
}
catch (SQLException se) {
logger.warn("Error retrieving 'DatabaseMetaData.getDatabaseProductName' - " + se.getMessage());
catch (SQLException ex) {
logger.warn("Error retrieving 'DatabaseMetaData.getDatabaseProductName' - " + ex.getMessage());
}
try {
this.databaseVersion = databaseMetaData.getDatabaseProductVersion();
}
catch (SQLException se) {
logger.warn("Error retrieving 'DatabaseMetaData.getDatabaseProductVersion' - " + se.getMessage());
catch (SQLException ex) {
logger.warn("Error retrieving 'DatabaseMetaData.getDatabaseProductVersion' - " + ex.getMessage());
}
try {
setStoresUpperCaseIdentifiers(databaseMetaData.storesUpperCaseIdentifiers());
}
catch (SQLException se) {
logger.warn("Error retrieving 'DatabaseMetaData.storesUpperCaseIdentifiers' - " + se.getMessage());
catch (SQLException ex) {
logger.warn("Error retrieving 'DatabaseMetaData.storesUpperCaseIdentifiers' - " + ex.getMessage());
}
try {
setStoresLowerCaseIdentifiers(databaseMetaData.storesLowerCaseIdentifiers());
}
catch (SQLException se) {
logger.warn("Error retrieving 'DatabaseMetaData.storesLowerCaseIdentifiers' - " + se.getMessage());
catch (SQLException ex) {
logger.warn("Error retrieving 'DatabaseMetaData.storesLowerCaseIdentifiers' - " + ex.getMessage());
}
}
@@ -228,7 +211,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
else if (isStoresUpperCaseIdentifiers()) {
return tableName.toUpperCase();
}
else if(isStoresLowerCaseIdentifiers()) {
else if (isStoresLowerCaseIdentifiers()) {
return tableName.toLowerCase();
}
else {
@@ -243,7 +226,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
else if (isStoresUpperCaseIdentifiers()) {
return catalogName.toUpperCase();
}
else if(isStoresLowerCaseIdentifiers()) {
else if (isStoresLowerCaseIdentifiers()) {
return catalogName.toLowerCase();
}
else {
@@ -258,7 +241,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
else if (isStoresUpperCaseIdentifiers()) {
return schemaName.toUpperCase();
}
else if(isStoresLowerCaseIdentifiers()) {
else if (isStoresLowerCaseIdentifiers()) {
return schemaName.toLowerCase();
}
else {
@@ -311,22 +294,23 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
tmd.setSchemaName(tables.getString("TABLE_SCHEM"));
tmd.setTableName(tables.getString("TABLE_NAME"));
if (tmd.getSchemaName() == null) {
tableMeta.put(userName != null ? userName.toUpperCase() : "", tmd);
tableMeta.put(this.userName != null ? this.userName.toUpperCase() : "", tmd);
}
else {
tableMeta.put(tmd.getSchemaName().toUpperCase(), tmd);
}
}
}
catch (SQLException se) {
logger.warn("Error while accessing table meta data results" + se.getMessage());
catch (SQLException ex) {
logger.warn("Error while accessing table meta data results" + ex.getMessage());
}
finally {
if (tables != null) {
try {
tables.close();
} catch (SQLException e) {
logger.warn("Error while closing table meta data reults" + e.getMessage());
}
catch (SQLException ex) {
logger.warn("Error while closing table meta data results" + ex.getMessage());
}
}
}
@@ -365,7 +349,7 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
}
/**
* Method supporting the metedata processing for a table's columns
* Method supporting the metadata processing for a table's columns
*/
private void processTableColumns(DatabaseMetaData databaseMetaData, TableMetaData tmd) {
ResultSet tableColumns = null;
@@ -417,16 +401,16 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
}
}
}
catch (SQLException se) {
logger.warn("Error while retrieving metadata for table columns: " + se.getMessage());
catch (SQLException ex) {
logger.warn("Error while retrieving metadata for table columns: " + ex.getMessage());
}
finally {
try {
if (tableColumns != null)
tableColumns.close();
}
catch (SQLException se) {
logger.warn("Problem closing ResultSet for table column metadata " + se.getMessage());
catch (SQLException ex) {
logger.warn("Problem closing ResultSet for table column metadata " + ex.getMessage());
}
}
@@ -444,7 +428,6 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
private String tableName;
public void setCatalogName(String catalogName) {
this.catalogName = catalogName;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -65,22 +65,22 @@ public class SQLExceptionSubclassTranslator extends AbstractFallbackSQLException
@Override
protected DataAccessException doTranslate(String task, String sql, SQLException ex) {
if (ex instanceof SQLTransientException) {
if (ex instanceof SQLTransactionRollbackException) {
return new ConcurrencyFailureException(buildMessage(task, sql, ex), ex);
}
if (ex instanceof SQLTransientConnectionException) {
return new TransientDataAccessResourceException(buildMessage(task, sql, ex), ex);
}
if (ex instanceof SQLTimeoutException) {
else if (ex instanceof SQLTransactionRollbackException) {
return new ConcurrencyFailureException(buildMessage(task, sql, ex), ex);
}
else if (ex instanceof SQLTimeoutException) {
return new QueryTimeoutException(buildMessage(task, sql, ex), ex);
}
}
else if (ex instanceof SQLNonTransientException) {
if (ex instanceof SQLDataException) {
return new DataIntegrityViolationException(buildMessage(task, sql, ex), ex);
if (ex instanceof SQLNonTransientConnectionException) {
return new DataAccessResourceFailureException(buildMessage(task, sql, ex), ex);
}
else if (ex instanceof SQLFeatureNotSupportedException) {
return new InvalidDataAccessApiUsageException(buildMessage(task, sql, ex), ex);
else if (ex instanceof SQLDataException) {
return new DataIntegrityViolationException(buildMessage(task, sql, ex), ex);
}
else if (ex instanceof SQLIntegrityConstraintViolationException) {
return new DataIntegrityViolationException(buildMessage(task, sql, ex), ex);
@@ -88,12 +88,12 @@ public class SQLExceptionSubclassTranslator extends AbstractFallbackSQLException
else if (ex instanceof SQLInvalidAuthorizationSpecException) {
return new PermissionDeniedDataAccessException(buildMessage(task, sql, ex), ex);
}
else if (ex instanceof SQLNonTransientConnectionException) {
return new DataAccessResourceFailureException(buildMessage(task, sql, ex), ex);
}
else if (ex instanceof SQLSyntaxErrorException) {
return new BadSqlGrammarException(task, sql, ex);
}
else if (ex instanceof SQLFeatureNotSupportedException) {
return new InvalidDataAccessApiUsageException(buildMessage(task, sql, ex), ex);
}
}
else if (ex instanceof SQLRecoverableException) {
return new RecoverableDataAccessException(buildMessage(task, sql, ex), ex);