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

Kathey Marsden commented on DERBY-2558:
---------------------------------------

It seems to me that since the ArrayIndexOutOfBounds exception is being thrown 
from within client, we should be able to get a java reproduction for this 
outside of ij.  I tried, but got  a perfectly reasonable error message with the 
code below, so I am not sure how to reproduce, but it does seem like just 
working around the issue in ij is not the   best  solution.


import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.PreparedStatement;

public class d2558 {

    public static void main(String[] args) throws Exception {

        Class.forName("org.apache.derby.jdbc.ClientDriver");
        Connection conn = 
DriverManager.getConnection("jdbc:derby://localhost:1527/wombat;create=true;traceFile=trace.out");
        Statement s = conn.createStatement();

        try {
            s.executeUpdate("DROP TABLE t ");
        } catch (SQLException se) {}

       

        s.executeUpdate("Create table t (i int)");
        s.executeUpdate("insert into t values (3), (4)");
        PreparedStatement ps = conn.prepareStatement("select * from t where 
i=?");
        ps.setObject(1,new Integer(3));
        ps.setObject(2,new Integer(4));
        ResultSet rs = ps.executeQuery();
        

    }
}


> client trhows ArrayIndexOutOfBounds exception instead of parameter out of 
> range 
> --------------------------------------------------------------------------------
>
>                 Key: DERBY-2558
>                 URL: https://issues.apache.org/jira/browse/DERBY-2558
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Client
>    Affects Versions: 10.3.0.0
>            Reporter: Kathey Marsden
>         Assigned To: Bryan Pendleton
>            Priority: Minor
>         Attachments: IJCheckParms.diff
>
>
>       
> The following sql gives an ArrayIndexOutOfBoundsException with client.  With 
> embedded we get the expected.
> ERROR XCL13: The parameter position '2' is out of range.  The number of 
> parameters for this prepared  statement is '1'.
> ij> create table t (i int);
> 0 rows inserted/updated/deleted
> ij> insert into t values (3), (4);
> 2 rows inserted/updated/deleted
> ij> execute 'select * from t where i=?' using 'values (3,4)';
> IJ WARNING: Autocommit may close using result set
> JAVA ERROR: java.lang.ArrayIndexOutOfBoundsException: 1
> java.lang.ArrayIndexOutOfBoundsException: 1
>         at 
> org.apache.derby.client.am.PreparedStatement.setObjectX(PreparedStatement.java:1506)
>         at 
> org.apache.derby.client.am.PreparedStatement.setObject(PreparedStatement.java:1458)
>         at org.apache.derby.impl.tools.ij.util.DisplayMulti(util.java:696)
>         at 
> org.apache.derby.impl.tools.ij.utilMain.displayResult(utilMain.java:474)
>         at 
> org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(utilMain.java:351)
>         at org.apache.derby.impl.tools.ij.utilMain.go(utilMain.java:270)
>         at org.apache.derby.impl.tools.ij.Main.go(Main.java:215)
>         at org.apache.derby.impl.tools.ij.Main.mainCore(Main.java:181)
>         at org.apache.derby.impl.tools.ij.Main14.main(Main14.java:56)
>         at org.apache.derby.tools.ij.main(ij.java:71)

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

Reply via email to