Re: Multiple open ResultSets not allowed?

From: Jeff Kolesky <jeff(at)edusoft(dot)com>
To: Barry Lind <blind(at)xythos(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Multiple open ResultSets not allowed?
Date: 2003-03-17 17:01:48
Message-ID: a05200f03ba9baebec1d8@[192.168.1.9]
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Just to make sure I wasn't looking at the code incorrectly, I wrote
the following test code, making sure not to close the connection
before trying to get data from the result set:

Connection con = DB.getConnection();
Statement s1 = con.createStatement();
ResultSet rs1 = s1.executeQuery("SELECT * FROM table1");
while(rs1.next())
{
String col = rs1.getString("col");
System.out.println(col);
Statement s2 = con.createStatement();
ResultSet rs2 = s2.executeQuery("SELECT * FROM table2");
while(rs2.next())
{
String col2 = rs2.getString("col");
System.out.println("\t" + col2);
}
rs2.close();
s2.close();
}
rs1.close();
s1.close();
con.close();

Running this code throws the same exception. Looks like the
connection is being closed incorrectly by the driver, or more likely
that ResultSet data (Vector rows) is being set to null somehow.

Any other ideas?

Thanks.

Jeff

At 7:55 PM -0800 3/14/03, Barry Lind wrote:
>The error message says that the Connection is closed. You can't use
>a statement or result set after the connection that owns them is
>closed. This is part of the jdbc spec, and I think logic in the
>driver was tightened up in this area in 7.3.
>
>thanks,
>--Barry
>
>
>Jeff Kolesky wrote:
>>I have just switched to using the 7.3 JDBC driver and am no longer
>>allowed to have multiple ResultSets open at the same time.
>>
>>When running code that iterates through two open ResultSets (from
>>two different Statements from the same Connection), the following
>>exception is thrown:
>>
>> Connection is closed. Operation is not permitted.
>> at org.postgresql.jdbc1.AbstractJdbc1ResultSet.next
>>(AbstractJdbc1ResultSet.java:92)
>>
>>I haven't looked at the AbstractJdbc1ResultSet code to see what is
>>going on, but according to the JDBC Javadocs, "if the reading of
>>one ResultSet object is interleaved with the reading of another,
>>each must have been generated by different Statement objects."
>>Therefore, the code I am executing should not throw this exception,
>>and with the previous version of the driver it did not.
>>
>>Is this a known bug? Has it been fixed? Did I misinterpret the Javadocs?
>>
>>Thanks.
>>
>>Jeff
>>
>>---------------------------(end of broadcast)---------------------------
>>TIP 6: Have you searched our list archives?
>>
>>http://archives.postgresql.org
>>
>
>
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Rich Cullingford 2003-03-17 17:27:15 Re: Multiple open ResultSets not allowed?
Previous Message Tim Lucia 2003-03-17 16:51:17 Re: Multiple open ResultSets not allowed?