Обсуждение: BUG #2220: PostgreSQL-JDBC 8.1-404 fails to compile with ecj
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.
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
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