Skip site navigation (1) Skip section navigation (2)

Re: Multiple open ResultSets not allowed?

From: Barry Lind <blind(at)xythos(dot)com>
To: Jeff Kolesky <jeff(at)edusoft(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Multiple open ResultSets not allowed?
Date: 2003-03-18 05:55:15
Message-ID: 3E76B4C3.6040701@xythos.com (view raw, whole thread or download thread mbox)
Thread:
Lists: pgsql-jdbc
Jeff,

I run this code using the latest 7.3 driver and don't have any problems.

--Barry

Jeff Kolesky wrote:
> 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)
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
> 



In response to

pgsql-jdbc by date

Next:From: Barry LindDate: 2003-03-18 06:02:51
Subject: Re: Any plans for multidim array support??
Previous:From: Achilleus MantziosDate: 2003-03-17 20:57:24
Subject: Any plans for multidim array support??

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group