diff -ur hsqldb.orig/build/build.xml hsqldb/build/build.xml
--- hsqldb.orig/build/build.xml	2010-06-23 08:49:15.000000000 -0400
+++ hsqldb/build/build.xml	2012-01-24 15:09:43.000000000 -0500
@@ -98,7 +98,11 @@
       <echo message="ant.java.hasjsse=${ant.java.hasjsse}" />
    </target>
 
-   <target name="javaversion6">
+   <target name="javaversion7">
+      <available classname="java.util.Objects" property="ant.java.iscjava17"/>
+   </target>
+
+   <target name="javaversion6" depends="javaversion7" unless="ant.java.iscjava17">
       <available classname="java.net.IDN" property="ant.java.iscjava16"/>
    </target>
 
@@ -210,6 +214,7 @@
         <arg value="+JAVA2FULL"/>
         <arg value="-JAVA4"/>
         <arg value="-JAVA6"/>
+        <arg value="-JAVA7"/>
        </java>
     </target>
 
@@ -244,6 +249,7 @@
         <arg value="+JAVA2FULL"/>
         <arg value="+JAVA4"/>
         <arg value="-JAVA6"/>
+        <arg value="-JAVA7"/>
        </java>
     </target>
 
@@ -279,10 +285,47 @@
         <arg value="+JAVA2FULL"/>
         <arg value="+JAVA4"/>
         <arg value="+JAVA6"/>
+        <arg value="-JAVA7"/>
+      </java>
+    </target>
+
+    <target name="switchtojdk17" depends="switchtojdk16"
+            description="self explanatory" if="ant.java.iscjava17">
+      <java classname="org.hsqldb.util.CodeSwitcher" classpath="classes" >
+        <arg file="${src}/org/hsqldb/lib/java/JavaSystem.java"/>
+        <arg file="${src}/org/hsqldb/lib/HsqlTimer.java"/>
+        <arg file="${src}/org/hsqldb/jdbcDriver.java"/>
+        <arg file="${src}/org/hsqldb/jdbc/jdbcBlob.java"/>
+        <arg file="${src}/org/hsqldb/jdbc/jdbcDatabaseMetaData.java"/>
+        <arg file="${src}/org/hsqldb/jdbc/jdbcDataSource.java"/>
+        <arg file="${src}/org/hsqldb/jdbc/jdbcCallableStatement.java"/>
+        <arg file="${src}/org/hsqldb/jdbc/jdbcClob.java"/>
+        <arg file="${src}/org/hsqldb/jdbc/jdbcConnection.java"/>
+        <arg file="${src}/org/hsqldb/jdbc/jdbcParameterMetaData.java"/>
+        <arg file="${src}/org/hsqldb/jdbc/jdbcPreparedStatement.java"/>
+        <arg file="${src}/org/hsqldb/jdbc/jdbcResultSet.java"/>
+        <arg file="${src}/org/hsqldb/jdbc/jdbcResultSetMetaData.java"/>
+        <arg file="${src}/org/hsqldb/jdbc/jdbcStatement.java"/>
+        <arg file="${src}/org/hsqldb/persist/LockFile.java"/>
+        <arg file="${src}/org/hsqldb/persist/Logger.java"/>
+        <arg file="${src}/org/hsqldb/persist/ScaledRAFile.java"/>
+        <arg file="${src}/org/hsqldb/rowio/RowInputTextLog.java"/>
+        <arg file="${src}/org/hsqldb/util/DatabaseManager.java"/>
+        <arg file="${src}/org/hsqldb/util/ConnectionDialogCommon.java"/>
+        <arg file="${src}/org/hsqldb/lib/SimpleLog.java"/>
+        <arg file="${src}/org/hsqldb/rowio/RowInputTextLog.java"/>
+        <arg file="${src}/org/hsqldb/lib/SimpleLog.java"/>
+        <arg file="${src}/org/hsqldb/rowio/RowInputTextLog.java"/>
+        <arg file="${src}/org/hsqldb/HsqlDateTime.java"/>
+        <arg value="+JAVA2"/>
+        <arg value="+JAVA2FULL"/>
+        <arg value="+JAVA4"/>
+        <arg value="+JAVA6"/>
+        <arg value="+JAVA7"/>
       </java>
     </target>
 
-    <target name="store" depends="switchtojdk16"
+    <target name="store" depends="switchtojdk17"
             description="compiles the /store folder">
       <javac srcdir="${src}"
              destdir="classes"
diff -ur hsqldb.orig/src/org/hsqldb/jdbc/jdbcCallableStatement.java hsqldb/src/org/hsqldb/jdbc/jdbcCallableStatement.java
--- hsqldb.orig/src/org/hsqldb/jdbc/jdbcCallableStatement.java	2010-02-27 12:04:52.000000000 -0500
+++ hsqldb/src/org/hsqldb/jdbc/jdbcCallableStatement.java	2012-01-24 15:00:15.000000000 -0500
@@ -3379,4 +3379,20 @@
 */
 
 //#endif JAVA6
+
+//#ifdef JAVA7
+/*
+    public <T> T getObject(String columnLabel, Class<T> type) throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public <T> T getObject(int ColumnIndex, Class<T> type) throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+*/
+
+//#endif JAVA7
 }
diff -ur hsqldb.orig/src/org/hsqldb/jdbc/jdbcConnection.java hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java
--- hsqldb.orig/src/org/hsqldb/jdbc/jdbcConnection.java	2010-02-27 12:04:52.000000000 -0500
+++ hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java	2012-01-24 14:53:02.000000000 -0500
@@ -50,6 +50,14 @@
 */
 
 //#endif JAVA6
+
+//#ifdef JAVA7
+/*
+import java.util.concurrent.Executor;
+*/
+
+//#endif JAVA7
+
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.sql.SQLWarning;
@@ -2794,4 +2802,33 @@
 */
 
 //#endif JAVA6
+
+//#ifdef JAVA7
+/*
+    public int getNetworkTimeout() throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public void setNetworkTimeout(Executor executor, int millis) throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public void abort(Executor executor) throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+    
+    public String getSchema() throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public void setSchema(String schema) throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+*/
+//#endif JAVA7
 }
diff -ur hsqldb.orig/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java hsqldb/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java
--- hsqldb.orig/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java	2010-02-27 12:04:52.000000000 -0500
+++ hsqldb/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java	2012-01-24 15:03:07.000000000 -0500
@@ -5697,4 +5697,21 @@
 */
 
 //#endif JAVA6
+
+//#ifdef JAVA7
+/*
+    public boolean generatedKeyAlwaysReturned() throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public ResultSet getPseudoColumns(String catalog, String schemaPattern,
+                                      String tableNamePattern, String columnNamePattern) throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+*/
+
+//#endif JAVA7
 }
diff -ur hsqldb.orig/src/org/hsqldb/jdbc/jdbcDataSource.java hsqldb/src/org/hsqldb/jdbc/jdbcDataSource.java
--- hsqldb.orig/src/org/hsqldb/jdbc/jdbcDataSource.java	2010-02-27 12:04:52.000000000 -0500
+++ hsqldb/src/org/hsqldb/jdbc/jdbcDataSource.java	2012-01-24 15:08:29.000000000 -0500
@@ -47,6 +47,13 @@
 //#endif JAVA4
 import org.hsqldb.jdbcDriver;
 
+//#ifdef JAVA7
+/*
+import java.sql.SQLFeatureNotSupportedException;
+import java.util.logging.Logger;
+*/
+//#endif JAVA7
+
 // boucherb@users 20040411 - doc 1.7.2 - javadoc updates toward 1.7.2 final
 
 /**
@@ -325,4 +332,14 @@
 */
 
 //#endif JAVA6
+
+//#ifdef JAVA7
+/*
+    public Logger getParentLogger() throws SQLFeatureNotSupportedException
+    {
+        throw new SQLFeatureNotSupportedException("Not supported yet.");
+    }
+*/
+
+//#endif JAVA7
 }
diff -ur hsqldb.orig/src/org/hsqldb/jdbc/jdbcResultSet.java hsqldb/src/org/hsqldb/jdbc/jdbcResultSet.java
--- hsqldb.orig/src/org/hsqldb/jdbc/jdbcResultSet.java	2010-06-23 08:49:19.000000000 -0400
+++ hsqldb/src/org/hsqldb/jdbc/jdbcResultSet.java	2012-01-24 14:55:16.000000000 -0500
@@ -5332,4 +5332,21 @@
 */
 
 //#endif JAVA6
+
+
+//#ifdef JAVA7
+/*
+
+    public <T> T getObject(String columnLabel, Class<T> type) throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public <T> T getObject(int columnNum, Class<T> type) throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+*/
+
+//#endif JAVA6
 }
diff -ur hsqldb.orig/src/org/hsqldb/jdbc/jdbcStatement.java hsqldb/src/org/hsqldb/jdbc/jdbcStatement.java
--- hsqldb.orig/src/org/hsqldb/jdbc/jdbcStatement.java	2010-02-27 12:04:52.000000000 -0500
+++ hsqldb/src/org/hsqldb/jdbc/jdbcStatement.java	2012-01-24 14:58:14.000000000 -0500
@@ -1610,4 +1610,18 @@
     }
 */
 //#endif JAVA6
+
+//#ifdef JAVA7
+/*
+    public boolean isCloseOnCompletion() throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    public void closeOnCompletion() throws SQLException
+    {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+*/
+//#endif JAVA7
 }
diff -ur hsqldb.orig/src/org/hsqldb/jdbcDriver.java hsqldb/src/org/hsqldb/jdbcDriver.java
--- hsqldb.orig/src/org/hsqldb/jdbcDriver.java	2009-02-16 19:29:55.000000000 -0500
+++ hsqldb/src/org/hsqldb/jdbcDriver.java	2012-01-24 15:08:44.000000000 -0500
@@ -42,6 +42,13 @@
 import org.hsqldb.persist.HsqlDatabaseProperties;
 import org.hsqldb.persist.HsqlProperties;
 
+//#ifdef JAVA7
+/*
+import java.sql.SQLFeatureNotSupportedException;
+import java.util.logging.Logger;
+*/
+//#endif JAVA7
+
 // fredt@users 20011220 - patch 1.7.0 by fredt
 // new version numbering scheme
 // fredt@users 20020320 - patch 1.7.0 - JDBC 2 support and error trapping
@@ -321,4 +328,14 @@
             DriverManager.registerDriver(new jdbcDriver());
         } catch (Exception e) {}
     }
+
+//#ifdef JAVA7
+/*
+    public Logger getParentLogger() throws SQLFeatureNotSupportedException
+    {
+        throw new SQLFeatureNotSupportedException("Not supported yet.");
+    }
+*/
+
+//#endif JAVA7
 }
