You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by bp...@apache.org on 2006/04/03 19:13:58 UTC
svn commit: r391086 [3/3] - in
/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests:
master/DerbyNetClient/ master/DerbyNetClient/jdk14/
master/DerbyNetClient/jdk16/ tests/jdbcapi/
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/parameterMapping.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/parameterMapping.java?rev=391086&r1=391085&r2=391086&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/parameterMapping.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/parameterMapping.java Mon Apr 3 10:13:55 2006
@@ -1093,18 +1093,9 @@
msg = " JDBC FAIL " + SQLTypes[type];
}
else {
- if (sqleResult == null)
+ msg = checkForInvalidConversion(sqleResult);
+ if (msg == null)
return;
-
- // XCL12 is temp
- if ("22005".equals(sqleResult.getSQLState()) || "XCL12".equals(sqleResult.getSQLState()))
- System.out.print("IC");
- else if (sqleResult.getMessage().indexOf("Illegal Conv") != -1)
- System.out.print("IC");
- else
- showException(sqleResult);
-
- msg = " JDBC MATCH (INVALID)";
}
System.out.println(msg);
@@ -1121,45 +1112,51 @@
msg = " JDBC FAIL " + SQLTypes[type];
}
else {
- if (sqleResult == null)
+ msg = checkForInvalidConversion(sqleResult);
+ if (msg == null)
return;
-
- // XCL12 is temp
- if ("22005".equals(sqleResult.getSQLState()) || "XCL12".equals(sqleResult.getSQLState()))
- System.out.print("IC");
- else if (sqleResult.getMessage().indexOf("Illegal Conv") != -1)
- System.out.print("IC");
- else
- showException(sqleResult);
-
- msg = " JDBC MATCH (INVALID)";
}
System.out.println(msg);
}
- private static void setXXX(Statement s, PreparedStatement psi, PreparedStatement psq, int type) throws SQLException, java.io.IOException {
+ /**
+ * Look for an "Invalid Conversion" exception and format it for display.
+ *
+ * Look for an "Invalid Conversion" exception. If one is found,
+ * print "IC". If one is not found, dump the actual exception to
+ * the output instead.
+ *
+ * Note that the actual invalid conversion exception may be wrapped
+ * inside a BatchUpdateException, so we may need to hunt through
+ * the exception chain to find it.
+ */
+ private static String checkForInvalidConversion(SQLException sqle)
+ {
+ if (sqle == null)
+ return null;
- boolean executeBatchTests = true;
-
- // DERBY-349 - Disable executeBatch on these target types as invald conversions
- // using setByte() and executeBatch lead to the test hanging.
- if (TestUtil.isDerbyNetClientFramework())
- {
- switch (jdbcTypes[type])
+ boolean unknownException = true;
+ SQLException e = sqle;
+ while (e != null && unknownException == true)
+ {
+ // XCL12 is temp
+ if ("22005".equals(e.getSQLState()) ||
+ "XCL12".equals(e.getSQLState()) ||
+ e.getMessage().indexOf("Illegal Conv") != -1)
{
- case Types.BINARY:
- case Types.VARBINARY:
- case Types.LONGVARBINARY:
- case Types.DATE:
- case Types.TIMESTAMP:
- case Types.TIME:
- case Types.CLOB:
- case Types.BLOB:
- executeBatchTests = false;
+ unknownException = false;
+ System.out.print("IC");
break;
}
+ e = e.getNextException();
}
-
+ if (unknownException)
+ showException(sqle);
+
+ return " JDBC MATCH (INVALID)";
+ }
+ private static void setXXX(Statement s, PreparedStatement psi, PreparedStatement psq, int type) throws SQLException, java.io.IOException {
+
{
s.execute("DELETE FROM PM.TYPE_AS");
@@ -1182,7 +1179,7 @@
judge_setXXX(worked, sqleResult, 0, type);
}
// and as a batch
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1224,7 +1221,7 @@
judge_setXXX(worked, sqleResult, 1, type);
}
// and as a batch
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1266,7 +1263,7 @@
judge_setXXX(worked, sqleResult, 2, type);
}
// and as a batch
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1308,7 +1305,7 @@
judge_setXXX(worked, sqleResult, 3, type);
}
// as a batch
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1352,7 +1349,7 @@
}
// and as a batch
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1396,7 +1393,7 @@
}
// as a batch
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1441,7 +1438,7 @@
judge_setXXX(worked, sqleResult, 6, type);
}
// as a batch
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1485,7 +1482,7 @@
}
// null BigDecimal
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1528,7 +1525,7 @@
}
judge_setXXX(worked, sqleResult, 7, type);
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1576,7 +1573,7 @@
judge_setXXX(worked, sqleResult, 8, type);
}
// as batch
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1632,7 +1629,7 @@
judge_setXXX(worked, sqleResult, 8, type);
}
// null String as batch
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1686,7 +1683,7 @@
}
judge_setXXX(worked, sqleResult, 9, type);
}
- if (executeBatchTests){
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1730,7 +1727,7 @@
judge_setXXX(worked, sqleResult, 9, type);
}
- if (executeBatchTests){
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1771,7 +1768,7 @@
}
judge_setXXX(worked, sqleResult, 10, type);
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1815,7 +1812,7 @@
}
// null Date
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1857,7 +1854,7 @@
}
judge_setXXX(worked, sqleResult, 11, type);
}
- if (executeBatchTests){
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1899,7 +1896,7 @@
}
judge_setXXX(worked, sqleResult, 11, type);
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1941,7 +1938,7 @@
judge_setXXX(worked, sqleResult, 12, type);
}
// as batch
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -1984,7 +1981,7 @@
judge_setXXX(worked, sqleResult, 12, type);
}
// as batch
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -2033,7 +2030,7 @@
}
judge_setXXX(worked, sqleResult, 13, type);
}
- if (executeBatchTests){
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -2082,7 +2079,7 @@
}
judge_setXXX(worked, sqleResult, 13, type);
}
- if (executeBatchTests){
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -2129,7 +2126,7 @@
}
judge_setXXX(worked, sqleResult, 14, type);
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -2177,7 +2174,7 @@
}
judge_setXXX(worked, sqleResult, 14, type);
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -2217,7 +2214,7 @@
}
judge_setXXX(worked, sqleResult, 15, type);
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -2257,7 +2254,7 @@
}
judge_setXXX(worked, sqleResult, 15, type);
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -2304,7 +2301,7 @@
}
judge_setXXX(worked, sqleResult, 16, type);
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -2353,7 +2350,7 @@
}
judge_setXXX(worked, sqleResult, 16, type);
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -2399,7 +2396,7 @@
}
judge_setXXX(worked, sqleResult, 17, type);
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
boolean worked;
@@ -2444,7 +2441,7 @@
}
judge_setXXX(worked, sqleResult, 17, type);
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
boolean worked;
@@ -2527,7 +2524,7 @@
// setObject(null)
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -2547,7 +2544,7 @@
}
System.out.println(worked ? " FAIL " : (" OK " + sqleResult.getMessage()));
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;
@@ -2569,24 +2566,24 @@
System.out.println(worked ? " FAIL " : (" OK " + sqleResult.getMessage()));
}
- setXXX_setObject(s, psi, psq, type, "46", "java.lang.String", 0, executeBatchTests);
+ setXXX_setObject(s, psi, psq, type, "46", "java.lang.String", 0);
if(HAVE_BIG_DECIMAL)
- setXXX_setObject(s, psi, psq, type, BigDecimal.valueOf(72L), "java.math.BigDecimal", 1, executeBatchTests);
- setXXX_setObject(s, psi, psq, type, Boolean.TRUE, "java.lang.Boolean", 2, executeBatchTests);
- setXXX_setObject(s, psi, psq, type, new Integer(74), "java.lang.Integer", 3, executeBatchTests);
- setXXX_setObject(s, psi, psq, type, new Long(79), "java.lang.Long", 4, executeBatchTests);
- setXXX_setObject(s, psi, psq, type, new Float(76.3f), "java.lang.Float", 5, executeBatchTests);
- setXXX_setObject(s, psi, psq, type, new Double(12.33d), "java.lang.Double", 6, executeBatchTests);
+ setXXX_setObject(s, psi, psq, type, BigDecimal.valueOf(72L), "java.math.BigDecimal", 1);
+ setXXX_setObject(s, psi, psq, type, Boolean.TRUE, "java.lang.Boolean", 2);
+ setXXX_setObject(s, psi, psq, type, new Integer(74), "java.lang.Integer", 3);
+ setXXX_setObject(s, psi, psq, type, new Long(79), "java.lang.Long", 4);
+ setXXX_setObject(s, psi, psq, type, new Float(76.3f), "java.lang.Float", 5);
+ setXXX_setObject(s, psi, psq, type, new Double(12.33d), "java.lang.Double", 6);
{
byte[] data = {0x32, 0x39};
- setXXX_setObject(s, psi, psq, type, data, "byte[]", 7, executeBatchTests);
+ setXXX_setObject(s, psi, psq, type, data, "byte[]", 7);
}
- setXXX_setObject(s, psi, psq, type, java.sql.Date.valueOf("2004-02-14"), "java.sql.Date", 8, executeBatchTests);
- setXXX_setObject(s, psi, psq, type, java.sql.Time.valueOf("13:26:42"), "java.sql.Time", 9, executeBatchTests);
- setXXX_setObject(s, psi, psq, type, java.sql.Timestamp.valueOf("2004-02-23 17:14:24.097625551"), "java.sql.Timestamp", 10, executeBatchTests);
+ setXXX_setObject(s, psi, psq, type, java.sql.Date.valueOf("2004-02-14"), "java.sql.Date", 8);
+ setXXX_setObject(s, psi, psq, type, java.sql.Time.valueOf("13:26:42"), "java.sql.Time", 9);
+ setXXX_setObject(s, psi, psq, type, java.sql.Timestamp.valueOf("2004-02-23 17:14:24.097625551"), "java.sql.Timestamp", 10);
s.getConnection().commit();
if (!isDB2jNet) {
@@ -2595,7 +2592,7 @@
rsc.next();
Blob tester = rsc.getBlob(1);
rsc.close();
- setXXX_setObject(s, psi, psq, type, tester, "java.sql.Blob", 11, executeBatchTests);
+ setXXX_setObject(s, psi, psq, type, tester, "java.sql.Blob", 11);
}
{
@@ -2603,13 +2600,12 @@
rsc.next();
Clob tester = rsc.getClob(1);
rsc.close();
- setXXX_setObject(s, psi, psq, type, tester, "java.sql.Clob", 12, executeBatchTests);
+ setXXX_setObject(s, psi, psq, type, tester, "java.sql.Clob", 12);
}
}
}
- private static void setXXX_setObject(Statement s, PreparedStatement psi, PreparedStatement psq, int type, Object value, String className, int b5o,
- boolean executeBatchTests)
+ private static void setXXX_setObject(Statement s, PreparedStatement psi, PreparedStatement psq, int type, Object value, String className, int b5o)
throws SQLException, java.io.IOException
{
{
@@ -2634,7 +2630,7 @@
}
judge_setObject(worked, sqleResult, b5o, type);
}
- if (executeBatchTests) {
+ {
s.execute("DELETE FROM PM.TYPE_AS");
SQLException sqleResult = null;