[#840] Numeric conversions in getValueAsXXX() should trim String values first
This commit is contained in:
parent
8f99fca184
commit
65291bb1c5
@ -1485,6 +1485,17 @@ public abstract class jOOQAbstractTest<
|
||||
assertEquals(Boolean.TRUE, SQLDataType.BOOLEAN.convert("1"));
|
||||
assertEquals("1", SQLDataType.VARCHAR.convert("1"));
|
||||
|
||||
assertEquals(Byte.valueOf("1"), SQLDataType.TINYINT.convert(" 1"));
|
||||
assertEquals(Short.valueOf("1"), SQLDataType.SMALLINT.convert(" 1"));
|
||||
assertEquals(Integer.valueOf("1"), SQLDataType.INTEGER.convert(" 1"));
|
||||
assertEquals(Long.valueOf("1"), SQLDataType.BIGINT.convert(" 1"));
|
||||
assertEquals(Float.valueOf("1"), SQLDataType.REAL.convert(" 1"));
|
||||
assertEquals(Double.valueOf("1"), SQLDataType.DOUBLE.convert(" 1"));
|
||||
assertEquals(new BigInteger("1"), SQLDataType.DECIMAL_INTEGER.convert(" 1"));
|
||||
assertEquals(new BigDecimal("1"), SQLDataType.NUMERIC.convert(" 1"));
|
||||
assertEquals(Boolean.TRUE, SQLDataType.BOOLEAN.convert(" 1"));
|
||||
assertEquals(" 1", SQLDataType.VARCHAR.convert(" 1"));
|
||||
|
||||
assertEquals(Byte.valueOf("1"), SQLDataType.TINYINT.convert((byte) 1));
|
||||
assertEquals(Short.valueOf("1"), SQLDataType.SMALLINT.convert((byte) 1));
|
||||
assertEquals(Integer.valueOf("1"), SQLDataType.INTEGER.convert((byte) 1));
|
||||
|
||||
@ -186,28 +186,28 @@ final class TypeUtils {
|
||||
|
||||
// Various number types are converted between each other via String
|
||||
else if (toClass == Byte.class) {
|
||||
return (T) Byte.valueOf(new BigDecimal(from.toString()).byteValue());
|
||||
return (T) Byte.valueOf(new BigDecimal(from.toString().trim()).byteValue());
|
||||
}
|
||||
else if (toClass == Short.class) {
|
||||
return (T) Short.valueOf(new BigDecimal(from.toString()).shortValue());
|
||||
return (T) Short.valueOf(new BigDecimal(from.toString().trim()).shortValue());
|
||||
}
|
||||
else if (toClass == Integer.class) {
|
||||
return (T) Integer.valueOf(new BigDecimal(from.toString()).intValue());
|
||||
return (T) Integer.valueOf(new BigDecimal(from.toString().trim()).intValue());
|
||||
}
|
||||
else if (toClass == Long.class) {
|
||||
return (T) Long.valueOf(new BigDecimal(from.toString()).longValue());
|
||||
return (T) Long.valueOf(new BigDecimal(from.toString().trim()).longValue());
|
||||
}
|
||||
else if (toClass == Float.class) {
|
||||
return (T) Float.valueOf(from.toString());
|
||||
return (T) Float.valueOf(from.toString().trim());
|
||||
}
|
||||
else if (toClass == Double.class) {
|
||||
return (T) Double.valueOf(from.toString());
|
||||
return (T) Double.valueOf(from.toString().trim());
|
||||
}
|
||||
else if (toClass == BigDecimal.class) {
|
||||
return (T) new BigDecimal(from.toString());
|
||||
return (T) new BigDecimal(from.toString().trim());
|
||||
}
|
||||
else if (toClass == BigInteger.class) {
|
||||
return (T) new BigDecimal(from.toString()).toBigInteger();
|
||||
return (T) new BigDecimal(from.toString().trim()).toBigInteger();
|
||||
}
|
||||
else if (toClass == Boolean.class) {
|
||||
String s = from.toString().toLowerCase().trim();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user