From: | Dave Cramer <pg(at)fastcrypt(dot)com> |
---|---|
To: | Andreas Rudolph <andreas(dot)rudolph(at)spontech-spine(dot)com> |
Cc: | List <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | Re: BUG org.postgresql.Driver.connect() distorts InterruptedException |
Date: | 2013-08-12 16:22:12 |
Message-ID: | CADK3HHL+NK_LvQEAGSSZrrcwvgv0HaXxBNYDqF-qnij5xGjzyg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Ok, so you would like the code to not reset the interrupted exception so
that when it returns the interrupted bit will still be set and you can
check for isInterrupted ?
The SQL error is rather vague here since it is not really a SQL error,
rather someone cancelled the thread.
Dave Cramer
dave.cramer(at)credativ(dot)ca
http://www.credativ.ca
On Fri, Aug 9, 2013 at 4:35 AM, Andreas Rudolph <
andreas(dot)rudolph(at)spontech-spine(dot)com> wrote:
> Hi there!
>
> + JDBC driver build number
> 9.1-903
>
> + Server
> PostgreSQL 9.1.9 on i686-pc-linux-gnu, compiled by gcc-4.4.real (Debian
> 4.4.5-8) 4.4.5, 32-bit
>
> + Error message / stack trace
>
> org.postgresql.util.PSQLException: Beim Verbindungsversuch trat eine
> Unterbrechung auf.
> at org.postgresql.Driver$ConnectThread.getResult(Driver.java:365)
> at org.postgresql.Driver.connect(Driver.java:269)
> …
>
> + Description
>
> Recently I discovered this problem because it prevents to tell other
> SQLExceptions and interruption apart (in the exception handlers). After
> examining the source of org.postgresql.Driver I noticed that
> org.postgresql.Driver$ConnectThread.getResult catches InterruptedException
> and throws a org.postgresql.util.PSQLException instead BUT without
> supplying the InterruptedException as the cause (exception chaining) and
> without resetting the interrupted flag via
> Thread.currentThread().interrupt() (SQL error code / SQL state is
> unspecific, too). Please note that this behavior is present in 9.2-1003,
> too.
>
> Therefore I suggest that the handling of InterruptedException should be
> changed so it becomes more interoperable with client code that needs to
> handle SQLExceptions differently from thread interruption -- in a
> concurrent environment an already scheduled database query may become
> obsolete before it finishes because another query may be needed for example
> because of user intervention.
>
> Greetings
>
> --
> Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-jdbc
>
From | Date | Subject | |
---|---|---|---|
Next Message | Florent Guillaume | 2013-08-13 10:46:15 | Re: BUG org.postgresql.Driver.connect() distorts InterruptedException |
Previous Message | Dave Cramer | 2013-08-12 14:56:14 | Re: BUG org.postgresql.Driver.connect() distorts InterruptedException |