[ 
http://issues.apache.org/jira/browse/IBATIS-55?page=comments#action_57932 ]
     
duo long commented on IBATIS-55:
--------------------------------

ask for clearer exception.

such as: 

select id from tbl_test where name=null

without regard to the sql query intention. execute the sql isn't able to raise 
error in oracle database. 
ant that return "no rows selected."

However, throws exception when call queryForObject, why? I think should return 
null.

> 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

Reply via email to