List:Internals« Previous MessageNext Message »
From:mmatthews Date:November 1 2005 4:23am
Subject:Connector/J commit: r4493 - in branches/branch_5_0/connector-j: . src/com/mysql/jdbc src/testsuite/regression
View as plain text  
Modified:
   branches/branch_5_0/connector-j/CHANGES
   branches/branch_5_0/connector-j/src/com/mysql/jdbc/ResultSet.java
   branches/branch_5_0/connector-j/src/testsuite/regression/StatementRegressionTest.java
Log:
Removed Java5-specific calls to BigDecimal constructor (when
      result set value is '', (int)0 was being used as an argument
      in-directly via method return value. This signature doesn't exist
      prior to Java5.)

Modified: branches/branch_5_0/connector-j/CHANGES
===================================================================
--- branches/branch_5_0/connector-j/CHANGES	2005-11-01 01:01:09 UTC (rev 4492)
+++ branches/branch_5_0/connector-j/CHANGES	2005-11-01 04:23:54 UTC (rev 4493)
@@ -53,6 +53,11 @@
     - Moved all SQLException constructor usage to a factory in SQLError
       (ground-work for JDBC-4.0 SQLState-based exception classes).
       
+    - Removed Java5-specific calls to BigDecimal constructor (when
+      result set value is '', (int)0 was being used as an argument
+      in-directly via method return value. This signature doesn't exist
+      prior to Java5.)
+      
 09-xx-05 - Version 3.1.11-stable
 
     - Fixed BUG#11629 - Spurious "!" on console when character

Modified: branches/branch_5_0/connector-j/src/com/mysql/jdbc/ResultSet.java
===================================================================
--- branches/branch_5_0/connector-j/src/com/mysql/jdbc/ResultSet.java	2005-11-01 01:01:09 UTC (rev 4492)
+++ branches/branch_5_0/connector-j/src/com/mysql/jdbc/ResultSet.java	2005-11-01 04:23:54 UTC (rev 4493)
@@ -747,7 +747,18 @@
 		throw SQLError.createSQLException("Can't convert empty string ('') to numeric",
 				SQLError.SQL_STATE_INVALID_CHARACTER_VALUE_FOR_CAST);
 	}
+	
+	private String convertToZeroLiteralStringWithEmptyCheck()
+		throws SQLException {
+		
+		if (this.connection.getEmptyStringsConvertToZero()) {
+			return "0";
+		}
 
+		throw SQLError.createSQLException("Can't convert empty string ('') to numeric",
+				SQLError.SQL_STATE_INVALID_CHARACTER_VALUE_FOR_CAST);
+	}
+
 	//
 	// Note, row data is linked between these two result sets
 	//
@@ -1080,12 +1091,9 @@
 
 			if (stringVal != null) {
 				if (stringVal.length() == 0) {
-					if (!this.connection.isRunningOnJDK13()) {
-						val = new BigDecimal(convertToZeroWithEmptyCheck());
-					} else {
-						val = new BigDecimal(
-								String.valueOf(convertToZeroWithEmptyCheck()));
-					}
+					
+					val = new BigDecimal(
+							convertToZeroLiteralStringWithEmptyCheck());
 
 					return val;
 				}
@@ -1133,13 +1141,9 @@
 
 			if (stringVal != null) {
 				if (stringVal.length() == 0) {
-					if (!this.connection.isRunningOnJDK13()) {
-						val = new BigDecimal(convertToZeroWithEmptyCheck());
-					} else {
-						val = new BigDecimal(
-								String.valueOf(convertToZeroWithEmptyCheck()));
-					}
-					
+					val = new BigDecimal(
+							convertToZeroLiteralStringWithEmptyCheck());
+
 					try {
 						return val.setScale(scale);
 					} catch (ArithmeticException ex) {
@@ -1235,13 +1239,9 @@
 
 		if (stringVal != null) {
 			if (stringVal.length() == 0) {
-				if (!this.connection.isRunningOnJDK13()) {
-					bdVal = new BigDecimal(convertToZeroWithEmptyCheck());
-				} else {
-					bdVal = new BigDecimal(
-							String.valueOf(convertToZeroWithEmptyCheck()));
-				}
 				
+				bdVal = new BigDecimal(convertToZeroLiteralStringWithEmptyCheck());
+
 				return bdVal.setScale(scale);
 			}
 
@@ -1281,7 +1281,7 @@
 	}
 
 	/**
-	 * A column value can also be retrieved as a binary strea. This method is
+	 * A column value can also be retrieved as a binary stream. This method is
 	 * suitable for retrieving LONGVARBINARY values.
 	 * 
 	 * @param columnIndex
@@ -2745,12 +2745,8 @@
 
 		if (stringVal != null) {
 			if (stringVal.length() == 0) {
-				if (!this.connection.isRunningOnJDK13()) {
-					val = new BigDecimal(convertToZeroWithEmptyCheck());
-				} else {
-					val = new BigDecimal(
-							String.valueOf(convertToZeroWithEmptyCheck()));
-				}
+				
+				val = new BigDecimal(convertToZeroLiteralStringWithEmptyCheck());
 
 				try {
 					return val.setScale(scale);

Modified: branches/branch_5_0/connector-j/src/testsuite/regression/StatementRegressionTest.java
===================================================================
--- branches/branch_5_0/connector-j/src/testsuite/regression/StatementRegressionTest.java	2005-11-01 01:01:09 UTC (rev 4492)
+++ branches/branch_5_0/connector-j/src/testsuite/regression/StatementRegressionTest.java	2005-11-01 04:23:54 UTC (rev 4493)
@@ -617,7 +617,7 @@
 			try {
 				this.pstmt = this.conn.prepareStatement("SELECT ?");
 				this.pstmt.setObject(1, Boolean.TRUE, Types.BOOLEAN);
-				this.pstmt.setObject(1, new BigDecimal(1), Types.BOOLEAN);
+				this.pstmt.setObject(1, new BigDecimal("1"), Types.BOOLEAN);
 				this.pstmt.setObject(1, "true", Types.BOOLEAN);
 			} finally {
 				if (this.pstmt != null) {

Thread
Connector/J commit: r4493 - in branches/branch_5_0/connector-j: . src/com/mysql/jdbc src/testsuite/regressionmmatthews1 Nov