Skip to content

Commit 66012b9

Browse files
author
Thomas Risberg
committed
Adding null check for username being null.
The username is usually not null, but it could be for some embedded databases. Always setting generatedKeysColumnNameArraySupported to false when getGeneratedKeysSupported is false, since it can't be supported without having generated keys supported. This change only affects logging messages. Issue: SPR-9006
1 parent 21aed04 commit 66012b9

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

org.springframework.jdbc/src/main/java/org/springframework/jdbc/core/metadata/GenericTableMetaDataProvider.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2011 the original author or authors.
2+
* Copyright 2002-2012 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -181,8 +181,13 @@ public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQL
181181
setGeneratedKeysColumnNameArraySupported(false);
182182
}
183183
else {
184-
logger.debug("GeneratedKeysColumnNameArray is supported for " + databaseProductName);
185-
setGeneratedKeysColumnNameArraySupported(true);
184+
if (isGetGeneratedKeysSupported()) {
185+
logger.debug("GeneratedKeysColumnNameArray is supported for " + databaseProductName);
186+
setGeneratedKeysColumnNameArraySupported(true);
187+
}
188+
else {
189+
setGeneratedKeysColumnNameArraySupported(false);
190+
}
186191
}
187192
}
188193
catch (SQLException se) {
@@ -307,7 +312,7 @@ private void locateTableAndProcessMetaData(DatabaseMetaData databaseMetaData, St
307312
tmd.setTableName(tables.getString("TABLE_NAME"));
308313
tmd.setType(tables.getString("TABLE_TYPE"));
309314
if (tmd.getSchemaName() == null) {
310-
tableMeta.put(userName.toUpperCase(), tmd);
315+
tableMeta.put(userName != null ? userName.toUpperCase() : "", tmd);
311316
}
312317
else {
313318
tableMeta.put(tmd.getSchemaName().toUpperCase(), tmd);
@@ -335,7 +340,7 @@ private void locateTableAndProcessMetaData(DatabaseMetaData databaseMetaData, St
335340
if (schemaName == null) {
336341
tmd = tableMeta.get(getDefaultSchema());
337342
if (tmd == null) {
338-
tmd = tableMeta.get(userName.toUpperCase());
343+
tmd = tableMeta.get(userName != null ? userName.toUpperCase() : "");
339344
}
340345
if (tmd == null) {
341346
tmd = tableMeta.get("PUBLIC");

0 commit comments

Comments
 (0)