[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Status of hsqldb package



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: org.hsqldb.NIOLockFile@23eda0de[file =/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;
		}
	}
}

Attachment: pgptIFY3PSzhI.pgp
Description: PGP signature


Reply to: