The DebianJavaWiki wonders on the subject of the hsqldb package: Non-Main-Depends: j2re1.4 (runtime dependency) Description: Java SQL database engine Does not build-dep on any contrib packages - does it need a java2-runtime to run ?
The answer to that is "apparently yes", but perhaps the collective wisdom on this list can figure out why that is. The problem can be reproduced using the attached test program. Running with Sun's JDK gives correctly $ java -classpath .:/usr/share/java/hsqldb.jar Test Column 1 returned 1 (Do rm testdb.* before rerunning the test.) With Kaffe I get $ kaffe -classpath .:/usr/share/java/hsqldb.jar Test ERROR: java.sql.SQLException: The database is already in use by another process: [EMAIL PROTECTED] =/home/peter/test/testdb.lck, exists=true, locked=false, valid=false, fl =null]: at org.hsqldb.jdbc.jdbcUtil.sqlException (jdbcUtil.java:67) at org.hsqldb.jdbc.jdbcConnection.<init> (jdbcConnection.java:2427) at org.hsqldb.jdbcDriver.getConnection (jdbcDriver.java:188) at org.hsqldb.jdbcDriver.connect (jdbcDriver.java:166) at java.sql.DriverManager.getConnection (DriverManager.java:164) at java.sql.DriverManager.getConnection (DriverManager.java:188) at Test.main (Test.java:12) With SableVM I get $ sablevm -c .:/usr/share/java/hsqldb.jar Test [...] ERROR: java.sql.SQLException: General error: java.lang.ExceptionInInitializerError at org.hsqldb.jdbc.jdbcUtil.sqlException (jdbcUtil.java:67) at org.hsqldb.jdbc.jdbcConnection.jdbcConnection (jdbcConnection.java:2427) at org.hsqldb.jdbcDriver.getConnection (jdbcDriver.java:188) at org.hsqldb.jdbcDriver.connect (jdbcDriver.java:166) at java.sql.DriverManager.getConnection (DriverManager.java:164) at java.sql.DriverManager.getConnection (DriverManager.java:188) at Test.main (Test.java:12) at java.lang.VirtualMachine.invokeMain (VirtualMachine.java) at java.lang.VirtualMachine.main (VirtualMachine.java:108) Please let me know if you know what any of this means. -- [Please copy replies to me.]
import java.sql.*; public class Test { public static void main(String argv[]) { Connection db; Statement st; ResultSet rs; try { Class.forName("org.hsqldb.jdbcDriver" ); db = DriverManager.getConnection("jdbc:hsqldb:file:testdb", "sa", ""); st = db.createStatement(); st.execute("CREATE TABLE mytable (a int, b varchar(30));"); st.close(); st = db.createStatement(); st.execute("INSERT INTO mytable VALUES (1, 'one');"); st.close(); st = db.createStatement(); rs = st.executeQuery("SELECT * FROM mytable WHERE a = 1;"); while (rs.next()) { System.out.print("Column 1 returned "); System.out.println(rs.getString(1)); } rs.close(); st.close(); db.close(); } catch (Exception e) { System.out.println("ERROR:"); e.printStackTrace(); return; } } }
pgpQK0UAXhGsf.pgp
Description: PGP signature