Thread: Closed ResultSet error

Closed ResultSet error

From
"Bayless Kirtley"
Date:
I am migrating from another database to PostgreSQL and have run into a serious problem. The Java program runs fine on the other DB but under PostgreSQL it gives the error, "ResultSet is closed."
 
This result set is created in a method that processes each row sequentially. Within the processing, it passes the result set to another method that retrieves columns from it and creates additional result sets to retrieve related information. This second method can also call itself recursively. This works fine with HSQLDB but fails when returning back to the original method and attempting another loop on the original result set, claiming it is closed.
 
I have removed all occurrences of closing any result sets and there are no instances of closing underlying statements within those methods. Finally, I have stepped through the entire operation with a debugger and found no unexpected events. Each time a new result set was created, the debugger indicated it to be a new entity. When finally returning to the original, it appeared to be the correct instance.
 
Is there a known problem along these lines? Any help or suggestions will be most appreciated.
 
Thanks,
Bayless
 

Re: Closed ResultSet error

From
Kris Jurka
Date:

On Wed, 30 Apr 2008, Bayless Kirtley wrote:

> I am migrating from another database to PostgreSQL and have run into a
> serious problem. The Java program runs fine on the other DB but under
> PostgreSQL it gives the error, "ResultSet is closed."
>
> I have removed all occurrences of closing any result sets and there are
> no instances of closing underlying statements within those methods.
> Finally, I have stepped through the entire operation with a debugger and
> found no unexpected events. Each time a new result set was created, the
> debugger indicated it to be a new entity. When finally returning to the
> original, it appeared to be the correct instance.

When the same statement is used to execute a second query, the first
ResultSet is closed automatically.  I'm guessing that this is what's
happening to you and you need to be sure to create a new Statement for
each concurrently open ResultSet you have.

Kris Jurka