Re: PSQLException: The column name <col> was not found in this ResultSet.

From: Samuel Gendler <sgendler(at)ideasculptor(dot)com>
To: Kris Jurka <books(at)ejurka(dot)com>
Cc: Michael Fork <mfork00(at)yahoo(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: PSQLException: The column name <col> was not found in this ResultSet.
Date: 2010-11-10 05:27:31
Message-ID: AANLkTimb4b+hv-8M+VwEUw_91y6Bw75u+i26sVZCD=kF@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On Tue, Nov 9, 2010 at 4:10 PM, Kris Jurka <books(at)ejurka(dot)com> wrote:

>
>
> On Mon, 8 Nov 2010, Michael Fork wrote:
>
> Caused by: org.postgresql.util.PSQLException: The column name mdn was not
>> found
>> in this ResultSet.
>>
>> I receive the above error message when accessing the JDBC resultset from
>> multiple threads. It does not occur consistently, but roughly every 20 or
>> 30 runs and almost immediately upon invocation. Looking at
>> org/postgresql/jdbc2/AbstractJdbc2ResultSet.java it appears there is a race
>> condition around building columnNameIndexMap
>>
>> I cannot confirm this, but I would guess that on thread enters, has the
>> NULL map and creates the new HashMap. The second thread enters, sees the
>> non-NULL columnNameIndexMap, and gets to the HashMap.get call prior to the
>> first thread fully populating the map. If this is the problem, would
>> wrapping the IF block in a synchronized(this) block fix it?
>>
>
> That looks like the correct diagnosis and fix to me.
>
>
That would only be a valid fix if ResultSet is intended to be inherently
threadsafe. I wouldn't think that is the case. There is no mention of
thread safety at all in the javadocs, which I would always take to imply
that there is no implicit thread safety. Code which utilizes a ResultSet
should do so in a thread safe manner, rather than attempting to make the
resultset implementation thread-safe - unless my assumptions about the
intent of the interface designers is incorrect.

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message cubfi 2010-11-10 07:49:41 Inserting Fingerprint templates as varchar not as bytea type in PostgreSQL
Previous Message Kris Jurka 2010-11-10 00:21:07 Re: JDBC4 and JDK 1.6