You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Mamta A. Satoor (JIRA)" <ji...@apache.org> on 2007/10/19 22:32:50 UTC

[jira] Commented: (DERBY-3046) setObj(int,Object,int) causes NPE if no parameter markers are present; should generate SQLException as for setObject(int,Object)

    [ https://issues.apache.org/jira/browse/DERBY-3046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12536336 ] 

Mamta A. Satoor commented on DERBY-3046:
----------------------------------------

Committed fix for this in trunk (revision 586596) with following commit comments. Will merge this into 10.3 codeline soon.

DERBY-3046

This commit fixes the null pointer exception by making sure that we do not try to access the object's elements if the object is null. I have also added a test case for this fix. 

Additionally, while working on this, I found that we return different sql state for parameter being out of range for PreparedStatment.setObject and Preparedstatement.setXXX calls in Network Server. I have entered a Jira entry for that issue DERBY-3139.


> setObj(int,Object,int) causes NPE if no parameter markers are present; should generate SQLException as for setObject(int,Object)
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3046
>                 URL: https://issues.apache.org/jira/browse/DERBY-3046
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.3.1.4
>            Reporter: Sebb
>            Priority: Minor
>
> Change WwdClientExample so that there are no parameters, e.g.
> psInsert = conn.prepareStatement("insert into WISH_LIST(WISH_ITEM) values ('?')");
> Now change 
>    psInsert.setString(1,answer);
> to
>   psInsert.setObject(1,answer);
> and the error is OK:
> SQLState:   XCL14
> Severity: 20000
> Message:  The column position '1' is out of range.  The number of columns for this ResultSet is '0'.
> java.sql.SQLException: The column position '1' is out of range.  The number of columns for this ResultSet is '0'.
> [...]
> However, using:
> psInsert.setObject(1,answer,java.sql.Types.VARCHAR);
> causes an NPE:
> java.lang.NullPointerException
>         at org.apache.derby.client.am.PreparedStatement.checkForValidParameterIndex(Unknown Source)
>         at org.apache.derby.client.am.PreparedStatement.setObjectX(Unknown Source)
>         at org.apache.derby.client.am.PreparedStatement.setObject(Unknown Source)
>         at WwdClientExample.main(WwdClientExample.java:93)
> Surely it should behave the same as the previous method call - i.e. return an SQLException?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.