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

Поиск
Список
Период
Сортировка
was not found in this ResultSet.was not found in this ResultSet.  (Kris Jurka <books@ejurka.com>)
От Michael Fork
Тема Re: PSQLException: The column name
Дата
Msg-id 476129.36153.qm@web113402.mail.gq1.yahoo.com
обсуждение исходный текст
Ответ на Re: PSQLException: The column name
Список pgsql-jdbc
Looking into this further, I think the initial fix was insufficient.  I think
there are two ways to go.  One is to synchronize the entire findColumnIndex.
Since we are using a standard HashMap and not a synchronized one, the additional
put could cause issues when doing a get if a resize was underway.  The
alternative would be to use Collections.synchronizedMap at instantiation of the
HashMap and wrap the initial load of it in the synchronized(this) block as
proposed below.  Once loaded, the get/puts would be synchronized by the map.

Thanks.

Michael

----- Original Message ----
From: Kris Jurka <books@ejurka.com>
To: Michael Fork <mfork00@yahoo.com>
Cc: pgsql-jdbc@postgresql.org
Sent: Tue, November 9, 2010 7:10:18 PM
Subject: Re: [JDBC] PSQLException: The column name <col> was not found in this
ResultSet.



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.

Kris Jurka


-- Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc


В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Stephen Ripley
Дата:
Сообщение: Re: JDBC4 and JDK 1.6
Следующее
От: Lew
Дата:
Сообщение: Re: PSQLException: The column name was not found in this ResultSet.