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

Another thought, are you using FORWARD_ONLY resulset type? Maybe if you changed 
it's type it wouldn't close it out. Also, you would be using list.nextPage() 
because next() does not exist.

> PaginatedList bug
> -----------------
>
>          Key: IBATIS-109
>          URL: http://issues.apache.org/jira/browse/IBATIS-109
>      Project: iBatis for Java
>         Type: Bug
>   Components: SQL Maps
>     Versions: 2.0.8, 2.0.9, 2.1.0, 2.1.1, 2.1.2, 2.0.9b
>  Environment: Any Java environment
>     Reporter: Patrick Idem
>     Priority: Critical

>
> Using DB2 database drivers cases an exception to be thrown when calling 
> paginatedList.next() and the current page is the page before the last page. 
> From what I can determine the PaginatedList class retrieves future records in 
> order to determine if there are any more pages. An Exception will be caused 
> in the following situation:
> A database table has 11 records.
> First issue a command to get a paginated list of all the records with a page 
> size of 10:
> PaginatedList list = queryForPaginatedList("getAllRecords", null, 10)
> Since the paginated list reads ahead it will retrieve all 11 records and 
> reach the end of the ResultSet.
> Now if we want to view the second page (which only consists of 1 record) we 
> would then do the following:
> list.next()
> Now, calling list.next() should not have to go to the database since we had 
> already reached the end of the ResultSet but it does! This is where the 
> problem happens. DB2 drivers automatically close the ResultSet when you read 
> in the last row so the ResultSet has been closed.
> I am suspecting that this problem is only serious when using DB2 drivers but 
> it is still a problem. The paginated list object should be smart enough to 
> know that there are no more results and not try to hit the database that last 
> time.
> The actually DB2 exception that is thrown is the following:
> com.ibm.db2.jcc.a.SqlException: Invalid operation: result set closed

-- 
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
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to