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

Reply via email to