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