You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by "Brandon Goodin (JIRA)" <ib...@incubator.apache.org> on 2005/01/21 15:17:17 UTC

[jira] Commented: (IBATIS-55) Throws ArrayIndexOutOfBoundsException when call queryForObject

     [ http://issues.apache.org/jira/browse/IBATIS-55?page=comments#action_57886 ]
     
Brandon Goodin commented on IBATIS-55:
--------------------------------------

Are you asking for a clearer exception or are you saying that you want the value to represent a search for a name that equals null. This scenario should produce an exception in my opinion. You can set nullables if you want to search against a null. You can find that information in the manual.

> Throws ArrayIndexOutOfBoundsException when call queryForObject
> --------------------------------------------------------------
>
>          Key: IBATIS-55
>          URL: http://issues.apache.org/jira/browse/IBATIS-55
>      Project: iBatis for Java
>         Type: Bug
>   Components: SQL Maps
>     Versions: 2.0.9
>  Environment: RedHat Linux AS 3.0
> Ibatis: 2.0.9.496
> Jdk: 1.4.2_04-b05
> DataBase: oracle9i
>     Reporter: duo long

>
> table structure:
>     create table tbl_test (
>        id number, 
>        name varchar2(20)
>     )
> sql map:
> <?xml version="1.0" encoding="GB2312"?>
> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
> "http://www.ibatis.com/dtd/sql-map-2.dtd">
> <sqlMap namespace="Test">
>   <select id="testSelect" resultClass="int">
>     select id from tbl_test where name=#value#
>   </select>
> </sqlMap>
> java:
>    String resource = "test/sqlmap_config.xml";
>    Reader reader = Resources.getResourceAsReader(resource);
>    SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
>    sqlMap.queryForObject("testSelect", value);
>    if value != null, query result is right
>    if value == null, throws ArrayIndexOutOfBoundsException
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
>         at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:183)
>         at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:99)
>         at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:561)
>         at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:536)
>         at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:97)
>         at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:69)
>         at test.FirstApp.testSelect(FirstApp.java:31)
>         at test.FirstApp.main(FirstApp.java:39)
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
>         at com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameter(BasicParameterMap.java:152)
>         at com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameters(BasicParameterMap.java:125)
>         at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:173)
>         at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:200)
>         at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:168)
>         ... 7 more
>  
> Caused by: 
> java.lang.ArrayIndexOutOfBoundsException: 0
>         at com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameter(BasicParameterMap.java:152)
>         at com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameters(BasicParameterMap.java:125)
>         at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:173)
>         at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:200)
>         at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:168)
>         at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:99)
>         at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:561)
>         at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:536)
>         at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:97)
>         at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:69)
>         at test.FirstApp.testSelect(FirstApp.java:31)
>         at test.FirstApp.main(FirstApp.java:39)
>  
> Caused by: 
> java.lang.ArrayIndexOutOfBoundsException: 0
>         at com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameter(BasicParameterMap.java:152)
>         at com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameters(BasicParameterMap.java:125)
>         at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:173)
>         at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:200)
>         at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:168)
>         at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:99)
>         at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:561)
>         at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:536)
>         at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:97)
>         at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:69)
>         at test.FirstApp.testSelect(FirstApp.java:31)
>         at test.FirstApp.main(FirstApp.java:39)

-- 
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
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira