[ http://issues.apache.org/jira/browse/DERBY-680?page=all ]
Deepa Remesh updated DERBY-680:
-------------------------------
Attachment: derby-680_v2.diff
derby-680_v2.status
Attaching 'derby-680_v2.diff'. This patch changes the test lang/ejbql.sql as
suggested by Dan. Avoids a new master for j9_foundation.
> In ij, executing a prepared statement with numeric/decimal parameter fails
> with NullPointerException in J2ME/CDC/FP
> -------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-680
> URL: http://issues.apache.org/jira/browse/DERBY-680
> Project: Derby
> Type: Bug
> Components: Tools
> Versions: 10.2.0.0
> Environment: j9_foundation VM in IBM WCTME 5.7
> Reporter: Deepa Remesh
> Assignee: Deepa Remesh
> Attachments: derby-680_v2.diff, derby-680_v2.status
>
> NPE is thrown in ij when executing prepared statement which
> - has numeric/decimal parameters
> - does not return any result set
> Repro for this problem is the test lang/cast.sql. This test currently fails
> in CDC/FP.
> The following lines in the test throw NPE:
> execute q10 using 'values 123456.78';
> execute q11 using 'values 123456.78';
> where q10 is "prepare q10 as 'insert into t1 (num) values cast(? as
> numeric(18))';"
> and q11 is "prepare q11 as 'insert into t1 (dc) values cast(? as
> decimal(18))';"
> The stack trace for failure is:
> java.lang.NullPointerException
> at org.apache.derby.impl.tools.ij.util.DisplayMulti(util.java:666)
> at
> org.apache.derby.impl.tools.ij.utilMain.displayResult(utilMain.java:398)
> at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:290)
> at org.apache.derby.impl.tools.ij.Main.go(Main.java:203)
> at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:169)
> at org.apache.derby.impl.tools.ij.Main.main(Main.java:75)
> at org.apache.derby.tools.ij.main(ij.java:56)
> This happens in the following code. Since the above prepared statements do
> not return result sets, call to getMetaData() will return null. But in the
> code, no check is done to see if getMetaData() returns null before calling
> getColumnType.
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> // In J2ME there is no object
> that represents
> // a DECIMAL value. By default
> use String to
> // pass values around, but for
> integral types
> // first convert to a integral
> type from the DECIMAL
> // because strings like 3.4 are
> not convertible to
> // an integral type.
> switch
> (ps.getMetaData().getColumnType(c))
> {
> case Types.BIGINT:
> ps.setLong(c,
> rs.getLong(c));
> break;
> case Types.INTEGER:
> case Types.SMALLINT:
> case Types.TINYINT:
> ps.setInt(c,
> rs.getInt(c));
> break;
> default:
>
> ps.setString(c,rs.getString(c));
> break;
> }
> -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira