You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by ma...@apache.org on 2017/11/12 20:52:24 UTC
[incubator-netbeans] 03/04: #271446: Add more information to
RuntimeExceptions DatabaseMetaData#getProcedureColumns
This is an automated email from the ASF dual-hosted git repository.
matthiasblaesing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-netbeans.git
commit 9fd82251f6453271460b6b868a358dd1964da933
Author: Matthias Bläsing <mb...@doppel-helix.eu>
AuthorDate: Sun Nov 12 21:40:36 2017 +0100
#271446: Add more information to RuntimeExceptions DatabaseMetaData#getProcedureColumns
---
db.metadata.model/nbproject/project.properties | 3 +-
.../db/metadata/model/jdbc/JDBCProcedure.java | 69 ++++++++++++----------
2 files changed, 41 insertions(+), 31 deletions(-)
diff --git a/db.metadata.model/nbproject/project.properties b/db.metadata.model/nbproject/project.properties
index 9093583..41f8d78 100644
--- a/db.metadata.model/nbproject/project.properties
+++ b/db.metadata.model/nbproject/project.properties
@@ -14,7 +14,8 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-javac.source=1.6
+
+javac.source=1.8
javac.compilerargs=-Xlint -Xlint:-serial
test.unit.cp.extra=\
diff --git a/db.metadata.model/src/org/netbeans/modules/db/metadata/model/jdbc/JDBCProcedure.java b/db.metadata.model/src/org/netbeans/modules/db/metadata/model/jdbc/JDBCProcedure.java
index 5d7c8da..8ae5a79 100644
--- a/db.metadata.model/src/org/netbeans/modules/db/metadata/model/jdbc/JDBCProcedure.java
+++ b/db.metadata.model/src/org/netbeans/modules/db/metadata/model/jdbc/JDBCProcedure.java
@@ -117,42 +117,49 @@ public class JDBCProcedure extends ProcedureImplementation {
}
protected void createProcedureInfo() {
- LOGGER.log(Level.FINE, "Initializing procedure info in " + this);
+ LOGGER.log(Level.FINE, "Initializing procedure info in {0}", this);
- Map<String, Column> newColumns = new LinkedHashMap<String, Column>();
- Map<String, Parameter> newParams = new LinkedHashMap<String, Parameter>();
+ Map<String, Column> newColumns = new LinkedHashMap<>();
+ Map<String, Parameter> newParams = new LinkedHashMap<>();
int resultCount = 0;
int paramCount = 0;
-
- try {
- ResultSet rs = jdbcSchema.getJDBCCatalog().getJDBCMetadata().getDmd().getProcedureColumns(jdbcSchema.getJDBCCatalog().getName(), jdbcSchema.getName(), name, "%"); // NOI18N
- try {
- while (rs.next()) {
- short columnType = rs.getShort("COLUMN_TYPE");
- switch (columnType) {
- case DatabaseMetaData.procedureColumnResult:
- addColumn(++resultCount, rs, newColumns);
- break;
- case DatabaseMetaData.procedureColumnIn:
- case DatabaseMetaData.procedureColumnInOut:
- case DatabaseMetaData.procedureColumnOut:
- case DatabaseMetaData.procedureColumnUnknown:
- addParameter(++paramCount, rs, newParams);
- break;
- case DatabaseMetaData.procedureColumnReturn:
- setReturnValue(rs);
- break;
- default:
- LOGGER.log(Level.INFO, "Encountered unexpected column type " + columnType + " when retrieving metadadta for procedure " + name);
- }
- }
- } finally {
- if (rs != null) {
- rs.close();
+
+ DatabaseMetaData dmd = jdbcSchema.getJDBCCatalog().getJDBCMetadata().getDmd();
+ String catalogName = jdbcSchema.getJDBCCatalog().getName();
+ String schemaName = jdbcSchema.getName();
+
+ try (ResultSet rs = dmd.getProcedureColumns(catalogName, schemaName, name, "%");) { // NOI18N
+ while (rs.next()) {
+ short columnType = rs.getShort("COLUMN_TYPE");
+ switch (columnType) {
+ case DatabaseMetaData.procedureColumnResult:
+ resultCount++;
+ addColumn(resultCount, rs, newColumns);
+ break;
+ case DatabaseMetaData.procedureColumnIn:
+ case DatabaseMetaData.procedureColumnInOut:
+ case DatabaseMetaData.procedureColumnOut:
+ case DatabaseMetaData.procedureColumnUnknown:
+ paramCount++;
+ addParameter(paramCount, rs, newParams);
+ break;
+ case DatabaseMetaData.procedureColumnReturn:
+ setReturnValue(rs);
+ break;
+ default:
+ LOGGER.log(Level.INFO, "Encountered unexpected column type {0} when retrieving metadadta for procedure {1}", new Object[]{columnType, name});
}
}
+ } catch (RuntimeException e) {
+ throw new RuntimeException(String.format(
+ "Failed to retrieve procedure info for catalog: '%s', schema: '%s', procedure: '%s'",
+ catalogName, schemaName, name
+ ), e);
} catch (SQLException e) {
- throw new MetadataException(e);
+ throw new MetadataException(String.format(
+ "Failed to retrieve procedure info for catalog: '%s', schema: '%s', procedure: '%s'",
+ catalogName, schemaName, name
+ ), e);
}
columns = Collections.unmodifiableMap(newColumns);
parameters = Collections.unmodifiableMap(newParams);
@@ -175,6 +182,7 @@ public class JDBCProcedure extends ProcedureImplementation {
LOGGER.log(Level.FINE, "Created return value {0}", returnValue);
}
+ @SuppressWarnings("ReturnOfCollectionOrArrayField")
private Map<String, Column> initColumns() {
if (columns != null) {
return columns;
@@ -183,6 +191,7 @@ public class JDBCProcedure extends ProcedureImplementation {
return columns;
}
+ @SuppressWarnings("ReturnOfCollectionOrArrayField")
private Map<String, Parameter> initParameters() {
if (parameters != null) {
return parameters;
--
To stop receiving notification emails like this one, please contact
"commits@netbeans.apache.org" <co...@netbeans.apache.org>.