Package: openjdk-6-jre-headless Version: 6b16-4 Found this exception when using Hsqldb 1.9 (http://sourceforge.net/projects/hsqldb/files/alpha_beta/hsqldb_1_9_0_rc6/hsqldb-1.9.0-rc6.zip/download) that occurs when using the Cacao but not Zero VM in OpenJDK.
Java source Bug.java: ============================================================= import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; public class Bug { public static void main(String[] args) throws Exception { Connection conn = null; try { conn = DriverManager.getConnection(args[0]); boolean tableExists = tableExists(conn, args[1], args[2]); System.out.println("Table exists: " +tableExists); } finally { if ( conn != null ) { conn.close(); } } } private static boolean tableExists(Connection conn, String aSchemaName, String aTableName) throws SQLException { DatabaseMetaData dbMeta = conn.getMetaData(); ResultSet rs = null; try { rs = dbMeta.getTables(null, null, null, null); while ( rs.next() ) { String schema = rs.getString(2); String table = rs.getString(3); System.err.println("Found table " +schema +'.' +table); if ( (aSchemaName == null || ( aSchemaName.equalsIgnoreCase(schema))) && aTableName.equalsIgnoreCase(table) ) { return true; } } return false; } finally { if ( rs != null ) { try { rs.close(); } catch ( SQLException e ) { // ignore this } } } } } ============================================================= so...@ts7260:~$ /usr/lib/jvm/java-6-openjdk/bin/java -cacao -version java version "1.6.0_0" IcedTea Runtime Environment (IcedTea6 1.5) (6b16-4) CACAO (build 0.99.4, compiled mode) so...@ts7260:~$ /usr/lib/jvm/java-6-openjdk/bin/java -cacao -Djdbc.drivers=org.hsqldb.jdbcDriver -cp lib/hsqldb.jar:. Bug 'jdbc:hsqldb:test' public test java.lang.IllegalAccessException: org.hsqldb.dbinfo.DatabaseInformationFull.<init>(Lorg.hsqldb.Database;)V not accessible from org.hsqldb.Database at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:532) at org.hsqldb.dbinfo.DatabaseInformation.newDatabaseInformation(DatabaseInformation.java:318) at org.hsqldb.Database.reopen(Database.java:261) at org.hsqldb.Database.open(Database.java:237) at org.hsqldb.DatabaseManager.getDatabase(DatabaseManager.java:225) at org.hsqldb.DatabaseManager.newSession(DatabaseManager.java:148) at org.hsqldb.jdbc.JDBCConnection.<init>(JDBCConnection.java:3216) at org.hsqldb.jdbc.JDBCDriver.getConnection(JDBCDriver.java:285) at org.hsqldb.jdbc.JDBCDriver.connect(JDBCDriver.java:245) at java.sql.DriverManager.getConnection(DriverManager.java:620) at java.sql.DriverManager.getConnection(DriverManager.java:222) at Bug.main(Bug.java:12) Exception in thread "main" java.sql.SQLException: user lacks privilege or object not found: SYSTEM_TABLES at org.hsqldb.jdbc.Util.sqlException(Util.java:200) at org.hsqldb.jdbc.JDBCStatement.fetchResult(JDBCStatement.java:1809) at org.hsqldb.jdbc.JDBCStatement.executeQuery(JDBCStatement.java:179) at org.hsqldb.jdbc.JDBCDatabaseMetaData.execute(JDBCDatabaseMetaData.java:6060) at org.hsqldb.jdbc.JDBCDatabaseMetaData.getTables(JDBCDatabaseMetaData.java:3161) at Bug.tableExists(Bug.java:28) at Bug.main(Bug.java:13) Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: SYSTEM_TABLES at org.hsqldb.error.Error.error(Error.java:77) at org.hsqldb.SchemaManager.getTable(SchemaManager.java:527) at org.hsqldb.ParserDQL.readTableName(ParserDQL.java:4382) at org.hsqldb.ParserDQL.readTableOrSubquery(ParserDQL.java:1397) at org.hsqldb.ParserDQL.XreadTableReference(ParserDQL.java:881) at org.hsqldb.ParserDQL.XreadFromClause(ParserDQL.java:868) at org.hsqldb.ParserDQL.XreadTableExpression(ParserDQL.java:803) at org.hsqldb.ParserDQL.XreadQuerySpecification(ParserDQL.java:797) at org.hsqldb.ParserDQL.XreadSimpleTable(ParserDQL.java:781) at org.hsqldb.ParserDQL.XreadQueryPrimary(ParserDQL.java:714) at org.hsqldb.ParserDQL.XreadQueryTerm(ParserDQL.java:680) at org.hsqldb.ParserDQL.XreadQueryExpressionBody(ParserDQL.java:659) at org.hsqldb.ParserDQL.XreadQueryExpression(ParserDQL.java:633) at org.hsqldb.ParserDQL.compileCursorSpecification(ParserDQL.java:4542) at org.hsqldb.ParserCommand.compilePart(ParserCommand.java:124) at org.hsqldb.ParserCommand.compileStatements(ParserCommand.java:85) at org.hsqldb.Session.executeDirectStatement(Session.java:1057) at org.hsqldb.Session.execute(Session.java:877) at org.hsqldb.jdbc.JDBCStatement.fetchResult(JDBCStatement.java:1801) ... 5 more ----------------------------- Now, run with Zero, no IllegalAccessException is thrown (which is the expected behavior): so...@ts7260:~$ /usr/lib/jvm/java-6-openjdk/bin/java -version java version "1.6.0_0" OpenJDK Runtime Environment (IcedTea6 1.5) (6b16-4) OpenJDK Zero VM (build 14.0-b15, interpreted mode) so...@ts7260:~$ /usr/lib/jvm/java-6-openjdk/bin/java -Djdbc.drivers=org.hsqldb.jdbcDriver -cp lib/hsqldb.jar:. Bug 'jdbc:hsqldb:test' public test Found table INFORMATION_SCHEMA.ADMINISTRABLE_ROLE_AUTHORIZATIONS ... Table exists: false ----------------------------- so...@ts7260:~$ uname -a Linux ts7260 2.6.29-ts #4 PREEMPT Sun May 17 15:02:44 MST 2009 armv4tl GNU/Linux -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org