You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by th...@apache.org on 2017/07/07 02:06:05 UTC
[30/50] commons-dbutils git commit: DBUTILS-117 Error handling
possible getParameterMetaData() results - handle
SQLFeatureNotSupportedException
DBUTILS-117 Error handling possible getParameterMetaData() results
- handle SQLFeatureNotSupportedException
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/dbutils/trunk@1645716 13f79535-47bb-0310-9956-ffa450edef68
Project: http://git-wip-us.apache.org/repos/asf/commons-dbutils/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-dbutils/commit/a36aeedc
Tree: http://git-wip-us.apache.org/repos/asf/commons-dbutils/tree/a36aeedc
Diff: http://git-wip-us.apache.org/repos/asf/commons-dbutils/diff/a36aeedc
Branch: refs/heads/master
Commit: a36aeedc119669fafbc5552107936ef3ee019334
Parents: 2175244
Author: Sebastian Bazley <se...@apache.org>
Authored: Mon Dec 15 18:38:41 2014 +0000
Committer: Sebastian Bazley <se...@apache.org>
Committed: Mon Dec 15 18:38:41 2014 +0000
----------------------------------------------------------------------
src/changes/changes.xml | 1 +
.../commons/dbutils/AbstractQueryRunner.java | 27 ++++++++++++--------
2 files changed, 18 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-dbutils/blob/a36aeedc/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 125956f..7107ebd 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -48,6 +48,7 @@ The <action> type attribute can be add,update,fix,remove.
<action dev="sebb" type="update" issue="DBUTILS-117" due-to="Vadim Smirnov">
Error handling possible getParameterMetaData() results
- allow for null return
+ - handle SQLFeatureNotSupportedException
</action>
<action dev="britter" type="update" issue="DBUTILS-119" due-to="Michael Akerman">
Correct errors in BeanMapHandler JavaDoc
http://git-wip-us.apache.org/repos/asf/commons-dbutils/blob/a36aeedc/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java b/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java
index dcf2cef..b5ce0cd 100644
--- a/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java
+++ b/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java
@@ -26,6 +26,7 @@ import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.sql.SQLFeatureNotSupportedException;
import java.sql.Statement;
import java.sql.Types;
import java.util.Arrays;
@@ -222,18 +223,23 @@ public abstract class AbstractQueryRunner {
// check the parameter count, if we can
ParameterMetaData pmd = null;
if (!pmdKnownBroken) {
- pmd = stmt.getParameterMetaData();
- if (pmd == null) { // can be returned by implementations that don't support the method
- pmdKnownBroken = true;
- } else {
- int stmtCount = pmd.getParameterCount();
- int paramsCount = params == null ? 0 : params.length;
-
- if (stmtCount != paramsCount) {
- throw new SQLException("Wrong number of parameters: expected "
- + stmtCount + ", was given " + paramsCount);
+ try {
+ pmd = stmt.getParameterMetaData();
+ if (pmd == null) { // can be returned by implementations that don't support the method
+ pmdKnownBroken = true;
+ } else {
+ int stmtCount = pmd.getParameterCount();
+ int paramsCount = params == null ? 0 : params.length;
+
+ if (stmtCount != paramsCount) {
+ throw new SQLException("Wrong number of parameters: expected "
+ + stmtCount + ", was given " + paramsCount);
+ }
}
+ } catch (SQLFeatureNotSupportedException ex) {
+ pmdKnownBroken = true;
}
+ // TODO see DBUTILS-117: would it make sense to catch any other SQLEx types here?
}
// nothing to do here
@@ -250,6 +256,7 @@ public abstract class AbstractQueryRunner {
// OTHER don't work with Oracle's drivers.
int sqlType = Types.VARCHAR;
if (!pmdKnownBroken) {
+ // TODO see DBUTILS-117: does it make sense to catch SQLEx here?
try {
/*
* It's not possible for pmdKnownBroken to change from