Re: Pg JDBC 3 driver, JDK 1.6, Glassfish v2 incompatability

From: Kris Jurka <books(at)ejurka(dot)com>
To: Thor-Michael Støre <thor-michael(dot)store(at)webvelocity(dot)no>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Pg JDBC 3 driver, JDK 1.6, Glassfish v2 incompatability
Date: 2007-04-09 16:04:59
Message-ID: Pine.BSO.4.64.0704091159320.13571@leary.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On Mon, 9 Apr 2007, Thor-Michael Stre wrote:

> CAUSE: On further investigation, Postgres jdbc driver's Connection from
> ConnectionPoolDataSource/XADataSource is a proxy of java.sql.Connection,
> This proxy, in jdk 1.6 will list all methods of jdbc 4.0 connection
> (even though the datasource is only jdbc 30) This makes GlassFish to
> decide (during initialization of datasource) that it is a jdbc 4.0
> compatible connection and calls jdbc 4.0 methods of Connection, causing
> AbstractMethodError thrown.
>

The real problem is that you are using the JDBC3 instead of JDBC4 driver
with a 1.6 JVM. I don't believe that either PG or Glassfish are at fault.
When the JDBC3 driver was built (under a 1.4/1.5) JDK it does implement
all java.sql.Connection methods so it is fine to proxy for it. When run
under a 1.6 JVM the proxying suddenly claims to implement more methods
which Glassfish reasonably tries to use. So I think it's really a
configuration error on your part.

Kris Jurka

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Kris Jurka 2007-04-09 16:07:25 Re: Problem with Running Query
Previous Message Thor-Michael Støre 2007-04-09 15:52:18 Pg JDBC 3 driver, JDK 1.6, Glassfish v2 incompatability