Thread: BUG #2220: PostgreSQL-JDBC 8.1-404 fails to compile with ecj

BUG #2220: PostgreSQL-JDBC 8.1-404 fails to compile with ecj

From
"Bernhard Rosenkraenzer"
Date:
The following bug has been logged online:

Bug reference:      2220
Logged by:          Bernhard Rosenkraenzer
Email address:      bero@arklinux.org
PostgreSQL version: 8.1.2
Operating system:   Linux (Ark Linux 2006.1-pre)
Description:        PostgreSQL-JDBC 8.1-404 fails to compile with ecj
Details:

PostgreSQL-JDBC 8.1-404 fails to compile (ecj bytecode compiler w/ gij 4.1
JDK):

    [javac] 1. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
rray.java
    [javac]  (at line 17)
    [javac]     public class Jdbc3gArray extends
org.postgresql.jdbc2.AbstractJdbc2Array implements java.sql.Array
    [javac]                  ^^^^^^^^^^^
    [javac] The type Jdbc3gArray must implement the inherited abstract
method Array.getArray(long, int, Map)
    [javac] ----------
    [javac] 2. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
rray.java
    [javac]  (at line 17)
    [javac]     public class Jdbc3gArray extends
org.postgresql.jdbc2.AbstractJdbc2Array implements java.sql.Array
    [javac]                  ^^^^^^^^^^^
    [javac] The type Jdbc3gArray must implement the inherited abstract
method Array.getArray(Map)
    [javac] ----------
    [javac] 3. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
rray.java
    [javac]  (at line 17)
    [javac]     public class Jdbc3gArray extends
org.postgresql.jdbc2.AbstractJdbc2Array implements java.sql.Array
    [javac]                  ^^^^^^^^^^^
    [javac] The type Jdbc3gArray must implement the inherited abstract
method Array.getResultSet(long, int, Map)
    [javac] ----------
    [javac] 4. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
rray.java
    [javac]  (at line 17)
    [javac]     public class Jdbc3gArray extends
org.postgresql.jdbc2.AbstractJdbc2Array implements java.sql.Array
    [javac]                  ^^^^^^^^^^^
    [javac] The type Jdbc3gArray must implement the inherited abstract
method Array.getResultSet(Map)
    [javac] ----------
    [javac] 5. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
rray.java
    [javac]  (at line 24)
    [javac]     public Object getArray(Map < String, Class < ? >> map)
throws SQLException
    [javac]                                          ^^^^^
    [javac] The type Class is not generic; it cannot be parameterized with
arguments <?>
    [javac] ----------
    [javac] 6. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
rray.java
    [javac]  (at line 29)
    [javac]     public Object getArray(long index, int count, Map < String,
Class < ? >> map) throws SQLException
    [javac]
^^^^^
    [javac] The type Class is not generic; it cannot be parameterized with
arguments <?>
    [javac] ----------
    [javac] 7. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
rray.java
    [javac]  (at line 34)
    [javac]     public ResultSet getResultSet(Map < String, Class < ? >>
map) throws SQLException
    [javac]                                                 ^^^^^
    [javac] The type Class is not generic; it cannot be parameterized with
arguments <?>
    [javac] ----------
    [javac] 8. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
rray.java
    [javac]  (at line 39)
    [javac]     public ResultSet getResultSet(long index, int count, Map <
String, Class < ? >> map)
    [javac] throws SQLException
    [javac]
      ^^^^^
    [javac] The type Class is not generic; it cannot be parameterized with
arguments <?>
    [javac] ----------
    [javac] ----------
    [javac] 9. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gC
allableStatement.java
    [javac]  (at line 15)
    [javac]     class Jdbc3gCallableStatement extends
Jdbc3gPreparedStatement implements CallableStatement
    [javac]           ^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The type Jdbc3gCallableStatement must implement the inherited
abstract method CallableStatement.getObject(String, Map)
    [javac] ----------
    [javac] 10. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gC
allableStatement.java
    [javac]  (at line 15)
    [javac]     class Jdbc3gCallableStatement extends
Jdbc3gPreparedStatement implements CallableStatement
    [javac]           ^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The type Jdbc3gCallableStatement must implement the inherited
abstract method CallableStatement.getO
    [javac] bject(int, Map)
    [javac] ----------
    [javac] 11. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gC
allableStatement.java
    [javac]  (at line 26)
    [javac]     public Object getObject(int i, Map < String, Class < ? >>
map) throws SQLException
    [javac]
    [javac]                                             ^^^^^
    [javac] The type Class is not generic; it cannot be parameterized with
arguments <?>
    [javac] ----------
    [javac] 12. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gC
allableStatement.java
    [javac]  (at line 31)
    [javac]     public Object getObject(String s, Map < String, Class < ? >>
map) throws SQLException
    [javac]                                                     ^^^^^
    [javac] The type Class is not generic; it cannot be parameterized with
arguments <?>
    [javac] ----------
    [javac] ----------
    [javac] 13. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gC
onnection.java
    [javac]  (at line 21)
    [javac]     public class Jdbc3gConnection extends
org.postgresql.jdbc3.AbstractJdbc3Connection im
    [javac] plements java.sql.Connection
    [javac]                  ^^^^^^^^^^^^^^^^
    [javac] The type Jdbc3gConnection must implement the inherited abstract
method Connection.setTypeMap(Map)
    [javac] ----------
    [javac] 14. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gC
onnection.java
    [javac]  (at line 56)
    [javac]     public void setTypeMap(Map < String, Class < ? >> map)
throws SQLException
    [javac]                                          ^^^^^
    [javac] The type Class is not generic; it cannot be parameterized with
arguments <?>
    [javac] ----------
    [javac] ----------
    [javac] 15. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gR
esultSet.java
    [javac]  (at line 23)
    [javac]     public class Jdbc3gResultSet extends
org.postgresql.jdbc3.AbstractJdbc3ResultSet implements java.sql.ResultSet
    [javac]                  ^^^^^^^^^^^^^^^
    [javac] The type Jdbc3gResultSet must implement the inherited abstract
method ResultSet.getObject(String, Map)
    [javac] ----------
    [javac] 16. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gR
esultSet.java
    [javac]  (at line 23)
    [javac]     public class Jdbc3gResultSet extends
org.postgresql.jdbc3.AbstractJdbc3ResultSet implements java.sql.ResultSet
    [javac]                  ^^^^^^^^^^^^^^^
    [javac] The type Jdbc3gResultSet must implement the inherited abstract
method ResultSet.getObject(int, Map)
    [javac] ----------
    [javac] 17. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gR
esultSet.java
    [javac]  (at line 63)
    [javac]     public Object getObject(String s, Map < String, Class < ? >>
map) throws SQLException
    [javac]                                                     ^^^^^
    [javac] The type Class is not generic; it cannot be parameterized with
arguments <?>
    [javac] ----------
    [javac] 18. ERROR in
/usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gR
esultSet.java
    [javac]  (at line 68)
    [javac]     public Object getObject(int i, Map < String, Class < ? >>
map) throws SQLException
    [javac]
    [javac]                                             ^^^^^
    [javac] The type Class is not generic; it cannot be parameterized with
arguments <?>


The ones about Class not being generic are probably just GNU classpath
lagging a bit behind the Java specs, but the abstract method errors look
like genuine bugs.

Re: BUG #2220: PostgreSQL-JDBC 8.1-404 fails to compile with

From
Kris Jurka
Date:

On Sun, 29 Jan 2006, Bernhard Rosenkraenzer wrote:

> Bug reference:      2220
> Description:        PostgreSQL-JDBC 8.1-404 fails to compile with ecj
> Details:
>
> PostgreSQL-JDBC 8.1-404 fails to compile (ecj bytecode compiler w/ gij 4.1
> JDK):
>

This is because the driver dynamically decides what version of the driver
to build (JDBC2, JDBC3, or JDBC3 w/ generics) at runtime based on the
current JVM.  You are running ant with a 1.5 JVM, but ecj's default
-source argument is 1.4, so it's trying to build 1.5 code, but
interpreting it as 1.4 code which cleary fails.  Adding "source=1.5" in
the <javac> tag in build.xml fixes this, but that's not a general
solution because it clearly won't be able to build other versions.  Do you
have a better solution for runtime determination or specification of the
version we should try to build.

Kris Jurka

Re: BUG #2220: PostgreSQL-JDBC 8.1-404 fails to compile with

From
Bruce Momjian
Date:
You need to file jdbc reports on the jdbc users lists.

---------------------------------------------------------------------------

Bernhard Rosenkraenzer wrote:
>
> The following bug has been logged online:
>
> Bug reference:      2220
> Logged by:          Bernhard Rosenkraenzer
> Email address:      bero@arklinux.org
> PostgreSQL version: 8.1.2
> Operating system:   Linux (Ark Linux 2006.1-pre)
> Description:        PostgreSQL-JDBC 8.1-404 fails to compile with ecj
> Details:
>
> PostgreSQL-JDBC 8.1-404 fails to compile (ecj bytecode compiler w/ gij 4.1
> JDK):
>
>     [javac] 1. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
> rray.java
>     [javac]  (at line 17)
>     [javac]     public class Jdbc3gArray extends
> org.postgresql.jdbc2.AbstractJdbc2Array implements java.sql.Array
>     [javac]                  ^^^^^^^^^^^
>     [javac] The type Jdbc3gArray must implement the inherited abstract
> method Array.getArray(long, int, Map)
>     [javac] ----------
>     [javac] 2. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
> rray.java
>     [javac]  (at line 17)
>     [javac]     public class Jdbc3gArray extends
> org.postgresql.jdbc2.AbstractJdbc2Array implements java.sql.Array
>     [javac]                  ^^^^^^^^^^^
>     [javac] The type Jdbc3gArray must implement the inherited abstract
> method Array.getArray(Map)
>     [javac] ----------
>     [javac] 3. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
> rray.java
>     [javac]  (at line 17)
>     [javac]     public class Jdbc3gArray extends
> org.postgresql.jdbc2.AbstractJdbc2Array implements java.sql.Array
>     [javac]                  ^^^^^^^^^^^
>     [javac] The type Jdbc3gArray must implement the inherited abstract
> method Array.getResultSet(long, int, Map)
>     [javac] ----------
>     [javac] 4. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
> rray.java
>     [javac]  (at line 17)
>     [javac]     public class Jdbc3gArray extends
> org.postgresql.jdbc2.AbstractJdbc2Array implements java.sql.Array
>     [javac]                  ^^^^^^^^^^^
>     [javac] The type Jdbc3gArray must implement the inherited abstract
> method Array.getResultSet(Map)
>     [javac] ----------
>     [javac] 5. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
> rray.java
>     [javac]  (at line 24)
>     [javac]     public Object getArray(Map < String, Class < ? >> map)
> throws SQLException
>     [javac]                                          ^^^^^
>     [javac] The type Class is not generic; it cannot be parameterized with
> arguments <?>
>     [javac] ----------
>     [javac] 6. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
> rray.java
>     [javac]  (at line 29)
>     [javac]     public Object getArray(long index, int count, Map < String,
> Class < ? >> map) throws SQLException
>     [javac]
> ^^^^^
>     [javac] The type Class is not generic; it cannot be parameterized with
> arguments <?>
>     [javac] ----------
>     [javac] 7. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
> rray.java
>     [javac]  (at line 34)
>     [javac]     public ResultSet getResultSet(Map < String, Class < ? >>
> map) throws SQLException
>     [javac]                                                 ^^^^^
>     [javac] The type Class is not generic; it cannot be parameterized with
> arguments <?>
>     [javac] ----------
>     [javac] 8. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gA
> rray.java
>     [javac]  (at line 39)
>     [javac]     public ResultSet getResultSet(long index, int count, Map <
> String, Class < ? >> map)
>     [javac] throws SQLException
>     [javac]
>       ^^^^^
>     [javac] The type Class is not generic; it cannot be parameterized with
> arguments <?>
>     [javac] ----------
>     [javac] ----------
>     [javac] 9. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gC
> allableStatement.java
>     [javac]  (at line 15)
>     [javac]     class Jdbc3gCallableStatement extends
> Jdbc3gPreparedStatement implements CallableStatement
>     [javac]           ^^^^^^^^^^^^^^^^^^^^^^^
>     [javac] The type Jdbc3gCallableStatement must implement the inherited
> abstract method CallableStatement.getObject(String, Map)
>     [javac] ----------
>     [javac] 10. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gC
> allableStatement.java
>     [javac]  (at line 15)
>     [javac]     class Jdbc3gCallableStatement extends
> Jdbc3gPreparedStatement implements CallableStatement
>     [javac]           ^^^^^^^^^^^^^^^^^^^^^^^
>     [javac] The type Jdbc3gCallableStatement must implement the inherited
> abstract method CallableStatement.getO
>     [javac] bject(int, Map)
>     [javac] ----------
>     [javac] 11. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gC
> allableStatement.java
>     [javac]  (at line 26)
>     [javac]     public Object getObject(int i, Map < String, Class < ? >>
> map) throws SQLException
>     [javac]
>     [javac]                                             ^^^^^
>     [javac] The type Class is not generic; it cannot be parameterized with
> arguments <?>
>     [javac] ----------
>     [javac] 12. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gC
> allableStatement.java
>     [javac]  (at line 31)
>     [javac]     public Object getObject(String s, Map < String, Class < ? >>
> map) throws SQLException
>     [javac]                                                     ^^^^^
>     [javac] The type Class is not generic; it cannot be parameterized with
> arguments <?>
>     [javac] ----------
>     [javac] ----------
>     [javac] 13. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gC
> onnection.java
>     [javac]  (at line 21)
>     [javac]     public class Jdbc3gConnection extends
> org.postgresql.jdbc3.AbstractJdbc3Connection im
>     [javac] plements java.sql.Connection
>     [javac]                  ^^^^^^^^^^^^^^^^
>     [javac] The type Jdbc3gConnection must implement the inherited abstract
> method Connection.setTypeMap(Map)
>     [javac] ----------
>     [javac] 14. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gC
> onnection.java
>     [javac]  (at line 56)
>     [javac]     public void setTypeMap(Map < String, Class < ? >> map)
> throws SQLException
>     [javac]                                          ^^^^^
>     [javac] The type Class is not generic; it cannot be parameterized with
> arguments <?>
>     [javac] ----------
>     [javac] ----------
>     [javac] 15. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gR
> esultSet.java
>     [javac]  (at line 23)
>     [javac]     public class Jdbc3gResultSet extends
> org.postgresql.jdbc3.AbstractJdbc3ResultSet implements java.sql.ResultSet
>     [javac]                  ^^^^^^^^^^^^^^^
>     [javac] The type Jdbc3gResultSet must implement the inherited abstract
> method ResultSet.getObject(String, Map)
>     [javac] ----------
>     [javac] 16. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gR
> esultSet.java
>     [javac]  (at line 23)
>     [javac]     public class Jdbc3gResultSet extends
> org.postgresql.jdbc3.AbstractJdbc3ResultSet implements java.sql.ResultSet
>     [javac]                  ^^^^^^^^^^^^^^^
>     [javac] The type Jdbc3gResultSet must implement the inherited abstract
> method ResultSet.getObject(int, Map)
>     [javac] ----------
>     [javac] 17. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gR
> esultSet.java
>     [javac]  (at line 63)
>     [javac]     public Object getObject(String s, Map < String, Class < ? >>
> map) throws SQLException
>     [javac]                                                     ^^^^^
>     [javac] The type Class is not generic; it cannot be parameterized with
> arguments <?>
>     [javac] ----------
>     [javac] 18. ERROR in
> /usr/src/ark/BUILD/postgresql-jdbc-8.1-404.src/org/postgresql/jdbc3g/Jdbc3gR
> esultSet.java
>     [javac]  (at line 68)
>     [javac]     public Object getObject(int i, Map < String, Class < ? >>
> map) throws SQLException
>     [javac]
>     [javac]                                             ^^^^^
>     [javac] The type Class is not generic; it cannot be parameterized with
> arguments <?>
>
>
> The ones about Class not being generic are probably just GNU classpath
> lagging a bit behind the Java specs, but the abstract method errors look
> like genuine bugs.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073