{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.Eutfr7n6/b1/c3p0_0.9.1.2-10_i386.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.Eutfr7n6/b2/c3p0_0.9.1.2-10_i386.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,3 +1,3 @@\n \n 30ec2b72a7b84eea543ebf0fbb9fcc2b 126804 doc optional libc3p0-java-doc_0.9.1.2-10_all.deb\n- fde0b17e37100e94b8d60a74f68bb0f6 607424 java optional libc3p0-java_0.9.1.2-10_all.deb\n+ 7f75f54e7f11b9b75eb56e80bafd869a 607396 java optional libc3p0-java_0.9.1.2-10_all.deb\n"}, {"source1": "libc3p0-java_0.9.1.2-10_all.deb", "source2": "libc3p0-java_0.9.1.2-10_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2018-12-25 14:16:25.000000 debian-binary\n -rw-r--r-- 0 0 0 808 2018-12-25 14:16:25.000000 control.tar.xz\n--rw-r--r-- 0 0 0 606424 2018-12-25 14:16:25.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 606396 2018-12-25 14:16:25.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -3,15 +3,15 @@\n drwxr-xr-x 0 root (0) root (0) 0 2018-12-25 14:16:25.000000 ./usr/share/\n drwxr-xr-x 0 root (0) root (0) 0 2018-12-25 14:16:25.000000 ./usr/share/doc/\n drwxr-xr-x 0 root (0) root (0) 0 2018-12-25 14:16:25.000000 ./usr/share/doc/libc3p0-java/\n -rw-r--r-- 0 root (0) root (0) 1010 2018-12-25 14:16:25.000000 ./usr/share/doc/libc3p0-java/changelog.Debian.gz\n -rw-r--r-- 0 root (0) root (0) 26278 2007-05-21 18:58:41.000000 ./usr/share/doc/libc3p0-java/changelog.gz\n -rw-r--r-- 0 root (0) root (0) 1528 2018-12-25 14:16:25.000000 ./usr/share/doc/libc3p0-java/copyright\n drwxr-xr-x 0 root (0) root (0) 0 2018-12-25 14:16:25.000000 ./usr/share/java/\n--rw-r--r-- 0 root (0) root (0) 637109 2018-12-25 14:16:25.000000 ./usr/share/java/c3p0-0.9.1.2.jar\n+-rw-r--r-- 0 root (0) root (0) 637242 2018-12-25 14:16:25.000000 ./usr/share/java/c3p0-0.9.1.2.jar\n drwxr-xr-x 0 root (0) root (0) 0 2018-12-25 14:16:25.000000 ./usr/share/maven-repo/\n drwxr-xr-x 0 root (0) root (0) 0 2018-12-25 14:16:25.000000 ./usr/share/maven-repo/c3p0/\n drwxr-xr-x 0 root (0) root (0) 0 2018-12-25 14:16:25.000000 ./usr/share/maven-repo/c3p0/c3p0/\n drwxr-xr-x 0 root (0) root (0) 0 2018-12-25 14:16:25.000000 ./usr/share/maven-repo/c3p0/c3p0/0.9.1.2/\n -rw-r--r-- 0 root (0) root (0) 916 2018-12-25 14:16:25.000000 ./usr/share/maven-repo/c3p0/c3p0/0.9.1.2/c3p0-0.9.1.2.pom\n drwxr-xr-x 0 root (0) root (0) 0 2018-12-25 14:16:25.000000 ./usr/share/maven-repo/c3p0/c3p0/debian/\n -rw-r--r-- 0 root (0) root (0) 915 2018-12-25 14:16:25.000000 ./usr/share/maven-repo/c3p0/c3p0/debian/c3p0-debian.pom\n"}, {"source1": "./usr/share/java/c3p0-0.9.1.2.jar", "source2": "./usr/share/java/c3p0-0.9.1.2.jar", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,8 +1,8 @@\n-Zip file size: 637109 bytes, number of entries: 434\n+Zip file size: 637242 bytes, number of entries: 434\n drwxr-xr-x 2.0 unx 0 bx stor 18-Dec-25 14:16 META-INF/\n -rw-r--r-- 2.0 unx 343 b- defN 18-Dec-25 14:16 META-INF/MANIFEST.MF\n drwxr-xr-x 2.0 unx 0 b- stor 18-Dec-25 14:16 com/\n drwxr-xr-x 2.0 unx 0 b- stor 18-Dec-25 14:16 com/mchange/\n -rw-r--r-- 2.0 unx 389 b- defN 18-Dec-25 14:16 com/mchange/Debug.class\n drwxr-xr-x 2.0 unx 0 b- stor 18-Dec-25 14:16 com/mchange/lang/\n -rw-r--r-- 2.0 unx 2589 b- defN 18-Dec-25 14:16 com/mchange/lang/ByteUtils.class\n@@ -167,23 +167,23 @@\n -rw-r--r-- 2.0 unx 1662 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/IdentityTokenizedCoalesceChecker.class\n -rw-r--r-- 2.0 unx 386 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/InternalPooledConnection.class\n -rw-r--r-- 2.0 unx 8361 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/JndiRefDataSourceBase.class\n -rw-r--r-- 2.0 unx 19071 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewPooledConnection.class\n -rw-r--r-- 2.0 unx 943 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyCallableStatement$1.class\n -rw-r--r-- 2.0 unx 77245 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyCallableStatement.class\n -rw-r--r-- 2.0 unx 901 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyConnection$1.class\n--rw-r--r-- 2.0 unx 28466 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyConnection.class\n+-rw-r--r-- 2.0 unx 28480 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyConnection.class\n -rw-r--r-- 2.0 unx 937 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyDatabaseMetaData$1.class\n -rw-r--r-- 2.0 unx 54238 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyDatabaseMetaData.class\n -rw-r--r-- 2.0 unx 943 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyPreparedStatement$1.class\n -rw-r--r-- 2.0 unx 39957 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.class\n -rw-r--r-- 2.0 unx 895 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyResultSet$1.class\n -rw-r--r-- 2.0 unx 64934 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyResultSet.class\n -rw-r--r-- 2.0 unx 895 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyStatement$1.class\n--rw-r--r-- 2.0 unx 21064 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyStatement.class\n+-rw-r--r-- 2.0 unx 21066 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NewProxyStatement.class\n -rw-r--r-- 2.0 unx 725 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/NullStatementSetManagedResultSet.class\n -rw-r--r-- 2.0 unx 8306 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/PoolBackedDataSourceBase.class\n -rw-r--r-- 2.0 unx 4406 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/SetManagedDatabaseMetaData.class\n -rw-r--r-- 2.0 unx 1074 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/SetManagedResultSet.class\n -rw-r--r-- 2.0 unx 893 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/SnatchFromSetResultSet.class\n -rw-r--r-- 2.0 unx 19599 b- defN 18-Dec-25 14:16 com/mchange/v2/c3p0/impl/WrapperConnectionPoolDataSourceBase.class\n drwxr-xr-x 2.0 unx 0 b- stor 18-Dec-25 14:16 com/mchange/v2/c3p0/jboss/\n@@ -429,8 +429,8 @@\n -rw-r--r-- 2.0 unx 2990 b- defN 18-Dec-25 14:16 com/mchange/v2/util/DoubleWeakHashMap$UserKeySet.class\n -rw-r--r-- 2.0 unx 1256 b- defN 18-Dec-25 14:16 com/mchange/v2/util/DoubleWeakHashMap$ValuesCollection$1.class\n -rw-r--r-- 2.0 unx 3497 b- defN 18-Dec-25 14:16 com/mchange/v2/util/DoubleWeakHashMap$ValuesCollection.class\n -rw-r--r-- 2.0 unx 1307 b- defN 18-Dec-25 14:16 com/mchange/v2/util/DoubleWeakHashMap$WKey.class\n -rw-r--r-- 2.0 unx 931 b- defN 18-Dec-25 14:16 com/mchange/v2/util/DoubleWeakHashMap$WVal.class\n -rw-r--r-- 2.0 unx 5389 b- defN 18-Dec-25 14:16 com/mchange/v2/util/DoubleWeakHashMap.class\n -rw-r--r-- 2.0 unx 1178 b- defN 18-Dec-25 14:16 com/mchange/v2/util/ResourceClosedException.class\n-434 files, 1482076 bytes uncompressed, 562639 bytes compressed: 62.0%\n+434 files, 1482092 bytes uncompressed, 562772 bytes compressed: 62.0%\n"}, {"source1": "com/mchange/v2/c3p0/impl/NewProxyCallableStatement.class", "source2": "com/mchange/v2/c3p0/impl/NewProxyCallableStatement.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -1,39 +1,39 @@\n \n package com.mchange.v2.c3p0.impl;\n \n import com.mchange.v2.log.MLog;\n import java.lang.reflect.InvocationTargetException;\n import java.lang.reflect.Method;\n-import java.sql.SQLWarning;\n import java.sql.Connection;\n import com.mchange.v2.sql.SqlUtils;\n import com.mchange.v2.log.MLevel;\n-import java.sql.ParameterMetaData;\n+import java.sql.SQLWarning;\n import java.sql.Statement;\n import java.sql.ResultSet;\n import java.sql.ResultSetMetaData;\n+import java.sql.ParameterMetaData;\n+import java.sql.Date;\n+import java.sql.Time;\n+import java.net.URL;\n+import java.sql.Array;\n+import java.sql.Ref;\n+import java.util.Map;\n import java.sql.SQLXML;\n import java.sql.NClob;\n import java.sql.RowId;\n import java.sql.Clob;\n import java.sql.Blob;\n-import java.io.Reader;\n import java.sql.SQLType;\n-import java.io.InputStream;\n-import java.sql.Date;\n-import java.sql.Time;\n-import java.math.BigDecimal;\n import java.util.Calendar;\n import java.sql.Timestamp;\n-import java.net.URL;\n-import java.sql.Array;\n-import java.sql.Ref;\n-import java.util.Map;\n+import java.math.BigDecimal;\n+import java.io.InputStream;\n import java.sql.SQLException;\n+import java.io.Reader;\n import javax.sql.ConnectionEventListener;\n import com.mchange.v2.log.MLogger;\n import com.mchange.v2.c3p0.C3P0ProxyStatement;\n import java.sql.CallableStatement;\n \n public final class NewProxyCallableStatement implements CallableStatement, C3P0ProxyStatement\n {\n@@ -46,18 +46,18 @@\n \n public NewProxyCallableStatement(final CallableStatement inner) {\n this.cel = (ConnectionEventListener)new NewProxyCallableStatement.NewProxyCallableStatement$1(this);\n this.inner = inner;\n }\n \n @Override\n- public final boolean getBoolean(final int a) throws SQLException {\n+ public final Reader getCharacterStream(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getBoolean(a);\n+ return this.inner.getCharacterStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -66,18 +66,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean getBoolean(final String a) throws SQLException {\n+ public final Reader getCharacterStream(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getBoolean(a);\n+ return this.inner.getCharacterStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -86,18 +86,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final byte getByte(final int a) throws SQLException {\n+ public final void setString(final String a, final String b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getByte(a);\n+ this.inner.setString(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -106,18 +106,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final byte getByte(final String a) throws SQLException {\n+ public final void setAsciiStream(final String a, final InputStream b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getByte(a);\n+ this.inner.setAsciiStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -126,18 +126,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final short getShort(final int a) throws SQLException {\n+ public final void setAsciiStream(final String a, final InputStream b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getShort(a);\n+ this.inner.setAsciiStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -146,18 +146,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final short getShort(final String a) throws SQLException {\n+ public final void setAsciiStream(final String a, final InputStream b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getShort(a);\n+ this.inner.setAsciiStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -166,18 +166,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getInt(final int a) throws SQLException {\n+ public final void setCharacterStream(final String a, final Reader b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getInt(a);\n+ this.inner.setCharacterStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -186,18 +186,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getInt(final String a) throws SQLException {\n+ public final void setCharacterStream(final String a, final Reader b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getInt(a);\n+ this.inner.setCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -206,18 +206,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final long getLong(final int a) throws SQLException {\n+ public final void setCharacterStream(final String a, final Reader b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getLong(a);\n+ this.inner.setCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -226,18 +226,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final long getLong(final String a) throws SQLException {\n+ public final void setBytes(final String a, final byte[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getLong(a);\n+ this.inner.setBytes(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -246,18 +246,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final float getFloat(final int a) throws SQLException {\n+ public final void setBinaryStream(final String a, final InputStream b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getFloat(a);\n+ this.inner.setBinaryStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -266,18 +266,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final float getFloat(final String a) throws SQLException {\n+ public final void setBinaryStream(final String a, final InputStream b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getFloat(a);\n+ this.inner.setBinaryStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -286,18 +286,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final double getDouble(final String a) throws SQLException {\n+ public final void setBinaryStream(final String a, final InputStream b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getDouble(a);\n+ this.inner.setBinaryStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -306,18 +306,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final double getDouble(final int a) throws SQLException {\n+ public final void setNull(final String a, final int b, final String c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getDouble(a);\n+ this.inner.setNull(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -326,18 +326,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final byte[] getBytes(final String a) throws SQLException {\n+ public final void setNull(final String a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getBytes(a);\n+ this.inner.setNull(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -346,18 +346,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final byte[] getBytes(final int a) throws SQLException {\n+ public final void setBigDecimal(final String a, final BigDecimal b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getBytes(a);\n+ this.inner.setBigDecimal(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -366,18 +366,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBoolean(final String a, final boolean b) throws SQLException {\n+ public final void setTimestamp(final String a, final Timestamp b, final Calendar c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBoolean(a, b);\n+ this.inner.setTimestamp(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -386,18 +386,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setByte(final String a, final byte b) throws SQLException {\n+ public final void setTimestamp(final String a, final Timestamp b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setByte(a, b);\n+ this.inner.setTimestamp(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -406,18 +406,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setShort(final String a, final short b) throws SQLException {\n+ public final void setObject(final String a, final Object b, final int c, final int d) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setShort(a, b);\n+ this.inner.setObject(a, b, c, d);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -426,18 +426,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setInt(final String a, final int b) throws SQLException {\n+ public final void setObject(final String a, final Object b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setInt(a, b);\n+ this.inner.setObject(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -446,18 +446,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setLong(final String a, final long b) throws SQLException {\n+ public final void setObject(final String a, final Object b, final SQLType c, final int d) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setLong(a, b);\n+ this.inner.setObject(a, b, c, d);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -466,18 +466,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setFloat(final String a, final float b) throws SQLException {\n+ public final void setObject(final String a, final Object b, final SQLType c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setFloat(a, b);\n+ this.inner.setObject(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -486,18 +486,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setDouble(final String a, final double b) throws SQLException {\n+ public final void setObject(final String a, final Object b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setDouble(a, b);\n+ this.inner.setObject(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -506,18 +506,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object getObject(final String a, final Class b) throws SQLException {\n+ public final void setBlob(final String a, final InputStream b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getObject(a, (Class)b);\n+ this.inner.setBlob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -526,18 +526,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object getObject(final int a, final Map b) throws SQLException {\n+ public final void setBlob(final String a, final Blob b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getObject(a, b);\n+ this.inner.setBlob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -546,18 +546,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object getObject(final int a, final Class b) throws SQLException {\n+ public final void setBlob(final String a, final InputStream b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getObject(a, (Class)b);\n+ this.inner.setBlob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -566,18 +566,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object getObject(final String a, final Map b) throws SQLException {\n+ public final void setClob(final String a, final Reader b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getObject(a, b);\n+ this.inner.setClob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -586,18 +586,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object getObject(final String a) throws SQLException {\n+ public final void setClob(final String a, final Reader b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getObject(a);\n+ this.inner.setClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -606,18 +606,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object getObject(final int a) throws SQLException {\n+ public final void setClob(final String a, final Clob b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getObject(a);\n+ this.inner.setClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -626,18 +626,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Ref getRef(final String a) throws SQLException {\n+ public final void setRowId(final String a, final RowId b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getRef(a);\n+ this.inner.setRowId(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -646,18 +646,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Ref getRef(final int a) throws SQLException {\n+ public final void setNString(final String a, final String b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getRef(a);\n+ this.inner.setNString(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -666,18 +666,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Array getArray(final String a) throws SQLException {\n+ public final void setNCharacterStream(final String a, final Reader b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getArray(a);\n+ this.inner.setNCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -686,18 +686,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Array getArray(final int a) throws SQLException {\n+ public final void setNCharacterStream(final String a, final Reader b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getArray(a);\n+ this.inner.setNCharacterStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -706,18 +706,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setURL(final String a, final URL b) throws SQLException {\n+ public final void setNClob(final String a, final NClob b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setURL(a, b);\n+ this.inner.setNClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -726,18 +726,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Timestamp getTimestamp(final String a) throws SQLException {\n+ public final void setNClob(final String a, final Reader b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getTimestamp(a);\n+ this.inner.setNClob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -746,18 +746,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Timestamp getTimestamp(final int a) throws SQLException {\n+ public final void setNClob(final String a, final Reader b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getTimestamp(a);\n+ this.inner.setNClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -766,18 +766,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Timestamp getTimestamp(final int a, final Calendar b) throws SQLException {\n+ public final void setSQLXML(final String a, final SQLXML b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getTimestamp(a, b);\n+ this.inner.setSQLXML(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -786,18 +786,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Timestamp getTimestamp(final String a, final Calendar b) throws SQLException {\n+ public final void registerOutParameter(final int a, final SQLType b, final String c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getTimestamp(a, b);\n+ this.inner.registerOutParameter(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -806,18 +806,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final String getString(final String a) throws SQLException {\n+ public final void registerOutParameter(final String a, final SQLType b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getString(a);\n+ this.inner.registerOutParameter(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -826,18 +826,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final String getString(final int a) throws SQLException {\n+ public final void registerOutParameter(final String a, final SQLType b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getString(a);\n+ this.inner.registerOutParameter(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -846,18 +846,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final BigDecimal getBigDecimal(final String a) throws SQLException {\n+ public final void registerOutParameter(final int a, final SQLType b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getBigDecimal(a);\n+ this.inner.registerOutParameter(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -866,18 +866,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final BigDecimal getBigDecimal(final int a, final int b) throws SQLException {\n+ public final void registerOutParameter(final int a, final SQLType b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getBigDecimal(a, b);\n+ this.inner.registerOutParameter(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -886,18 +886,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final BigDecimal getBigDecimal(final int a) throws SQLException {\n+ public final void registerOutParameter(final String a, final SQLType b, final String c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getBigDecimal(a);\n+ this.inner.registerOutParameter(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -906,18 +906,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Time getTime(final int a) throws SQLException {\n+ public final void registerOutParameter(final String a, final int b, final String c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getTime(a);\n+ this.inner.registerOutParameter(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -926,18 +926,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Time getTime(final String a, final Calendar b) throws SQLException {\n+ public final void registerOutParameter(final int a, final int b, final String c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getTime(a, b);\n+ this.inner.registerOutParameter(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -946,18 +946,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Time getTime(final String a) throws SQLException {\n+ public final void registerOutParameter(final String a, final int b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getTime(a);\n+ this.inner.registerOutParameter(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -966,18 +966,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Time getTime(final int a, final Calendar b) throws SQLException {\n+ public final void registerOutParameter(final int a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getTime(a, b);\n+ this.inner.registerOutParameter(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -986,18 +986,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setTime(final String a, final Time b) throws SQLException {\n+ public final void registerOutParameter(final int a, final int b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setTime(a, b);\n+ this.inner.registerOutParameter(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1006,18 +1006,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setTime(final String a, final Time b, final Calendar c) throws SQLException {\n+ public final void registerOutParameter(final String a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setTime(a, b, c);\n+ this.inner.registerOutParameter(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1026,18 +1026,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setDate(final String a, final Date b) throws SQLException {\n+ public final boolean wasNull() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setDate(a, b);\n+ return this.inner.wasNull();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1046,18 +1046,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setDate(final String a, final Date b, final Calendar c) throws SQLException {\n+ public final Blob getBlob(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setDate(a, b, c);\n+ return this.inner.getBlob(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1066,18 +1066,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Date getDate(final String a, final Calendar b) throws SQLException {\n+ public final Blob getBlob(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getDate(a, b);\n+ return this.inner.getBlob(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1086,18 +1086,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Date getDate(final int a) throws SQLException {\n+ public final Clob getClob(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getDate(a);\n+ return this.inner.getClob(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1106,18 +1106,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Date getDate(final int a, final Calendar b) throws SQLException {\n+ public final Clob getClob(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getDate(a, b);\n+ return this.inner.getClob(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1126,18 +1126,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Date getDate(final String a) throws SQLException {\n+ public final RowId getRowId(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getDate(a);\n+ return this.inner.getRowId(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1146,18 +1146,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final URL getURL(final String a) throws SQLException {\n+ public final RowId getRowId(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getURL(a);\n+ return this.inner.getRowId(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1166,18 +1166,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final URL getURL(final int a) throws SQLException {\n+ public final NClob getNClob(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getURL(a);\n+ return this.inner.getNClob(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1186,18 +1186,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNull(final String a, final int b) throws SQLException {\n+ public final NClob getNClob(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNull(a, b);\n+ return this.inner.getNClob(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1206,18 +1206,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNull(final String a, final int b, final String c) throws SQLException {\n+ public final SQLXML getSQLXML(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNull(a, b, c);\n+ return this.inner.getSQLXML(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1226,18 +1226,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBigDecimal(final String a, final BigDecimal b) throws SQLException {\n+ public final SQLXML getSQLXML(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBigDecimal(a, b);\n+ return this.inner.getSQLXML(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1246,18 +1246,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setString(final String a, final String b) throws SQLException {\n+ public final String getNString(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setString(a, b);\n+ return this.inner.getNString(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1266,18 +1266,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBytes(final String a, final byte[] b) throws SQLException {\n+ public final String getNString(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBytes(a, b);\n+ return this.inner.getNString(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1286,18 +1286,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setTimestamp(final String a, final Timestamp b) throws SQLException {\n+ public final Reader getNCharacterStream(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setTimestamp(a, b);\n+ return this.inner.getNCharacterStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1306,18 +1306,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setTimestamp(final String a, final Timestamp b, final Calendar c) throws SQLException {\n+ public final Reader getNCharacterStream(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setTimestamp(a, b, c);\n+ return this.inner.getNCharacterStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1326,18 +1326,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setAsciiStream(final String a, final InputStream b) throws SQLException {\n+ public final boolean getBoolean(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setAsciiStream(a, b);\n+ return this.inner.getBoolean(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1346,18 +1346,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setAsciiStream(final String a, final InputStream b, final int c) throws SQLException {\n+ public final boolean getBoolean(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setAsciiStream(a, b, c);\n+ return this.inner.getBoolean(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1366,18 +1366,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setAsciiStream(final String a, final InputStream b, final long c) throws SQLException {\n+ public final byte getByte(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setAsciiStream(a, b, c);\n+ return this.inner.getByte(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1386,18 +1386,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBinaryStream(final String a, final InputStream b, final int c) throws SQLException {\n+ public final byte getByte(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBinaryStream(a, b, c);\n+ return this.inner.getByte(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1406,18 +1406,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBinaryStream(final String a, final InputStream b, final long c) throws SQLException {\n+ public final short getShort(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBinaryStream(a, b, c);\n+ return this.inner.getShort(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1426,18 +1426,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBinaryStream(final String a, final InputStream b) throws SQLException {\n+ public final short getShort(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBinaryStream(a, b);\n+ return this.inner.getShort(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1446,18 +1446,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setObject(final String a, final Object b, final int c, final int d) throws SQLException {\n+ public final int getInt(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b, c, d);\n+ return this.inner.getInt(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1466,18 +1466,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setObject(final String a, final Object b, final SQLType c) throws SQLException {\n+ public final int getInt(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b, c);\n+ return this.inner.getInt(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1486,18 +1486,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setObject(final String a, final Object b, final int c) throws SQLException {\n+ public final long getLong(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b, c);\n+ return this.inner.getLong(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1506,18 +1506,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setObject(final String a, final Object b) throws SQLException {\n+ public final long getLong(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b);\n+ return this.inner.getLong(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1526,18 +1526,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setObject(final String a, final Object b, final SQLType c, final int d) throws SQLException {\n+ public final float getFloat(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b, c, d);\n+ return this.inner.getFloat(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1546,18 +1546,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setCharacterStream(final String a, final Reader b) throws SQLException {\n+ public final float getFloat(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setCharacterStream(a, b);\n+ return this.inner.getFloat(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1566,18 +1566,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setCharacterStream(final String a, final Reader b, final int c) throws SQLException {\n+ public final double getDouble(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setCharacterStream(a, b, c);\n+ return this.inner.getDouble(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1586,18 +1586,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setCharacterStream(final String a, final Reader b, final long c) throws SQLException {\n+ public final double getDouble(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setCharacterStream(a, b, c);\n+ return this.inner.getDouble(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1606,18 +1606,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBlob(final String a, final Blob b) throws SQLException {\n+ public final byte[] getBytes(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBlob(a, b);\n+ return this.inner.getBytes(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1626,18 +1626,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBlob(final String a, final InputStream b, final long c) throws SQLException {\n+ public final byte[] getBytes(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBlob(a, b, c);\n+ return this.inner.getBytes(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1646,18 +1646,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBlob(final String a, final InputStream b) throws SQLException {\n+ public final void setBoolean(final String a, final boolean b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBlob(a, b);\n+ this.inner.setBoolean(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1666,18 +1666,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setClob(final String a, final Reader b, final long c) throws SQLException {\n+ public final void setByte(final String a, final byte b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setClob(a, b, c);\n+ this.inner.setByte(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1686,18 +1686,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setClob(final String a, final Clob b) throws SQLException {\n+ public final void setShort(final String a, final short b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setClob(a, b);\n+ this.inner.setShort(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1706,18 +1706,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setClob(final String a, final Reader b) throws SQLException {\n+ public final void setInt(final String a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setClob(a, b);\n+ this.inner.setInt(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1726,18 +1726,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setRowId(final String a, final RowId b) throws SQLException {\n+ public final void setLong(final String a, final long b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setRowId(a, b);\n+ this.inner.setLong(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1746,18 +1746,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNString(final String a, final String b) throws SQLException {\n+ public final void setFloat(final String a, final float b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNString(a, b);\n+ this.inner.setFloat(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1766,18 +1766,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNCharacterStream(final String a, final Reader b) throws SQLException {\n+ public final void setDouble(final String a, final double b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNCharacterStream(a, b);\n+ this.inner.setDouble(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1786,18 +1786,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNCharacterStream(final String a, final Reader b, final long c) throws SQLException {\n+ public final Object getObject(final String a, final Class b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNCharacterStream(a, b, c);\n+ return this.inner.getObject(a, (Class)b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1806,18 +1806,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNClob(final String a, final Reader b) throws SQLException {\n+ public final Object getObject(final int a, final Class b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNClob(a, b);\n+ return this.inner.getObject(a, (Class)b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1826,18 +1826,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNClob(final String a, final NClob b) throws SQLException {\n+ public final Object getObject(final String a, final Map b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNClob(a, b);\n+ return this.inner.getObject(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1846,18 +1846,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNClob(final String a, final Reader b, final long c) throws SQLException {\n+ public final Object getObject(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNClob(a, b, c);\n+ return this.inner.getObject(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1866,18 +1866,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setSQLXML(final String a, final SQLXML b) throws SQLException {\n+ public final Object getObject(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setSQLXML(a, b);\n+ return this.inner.getObject(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1886,18 +1886,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void registerOutParameter(final String a, final SQLType b, final String c) throws SQLException {\n+ public final Object getObject(final int a, final Map b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.registerOutParameter(a, b, c);\n+ return this.inner.getObject(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1906,18 +1906,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void registerOutParameter(final int a, final SQLType b, final int c) throws SQLException {\n+ public final Ref getRef(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.registerOutParameter(a, b, c);\n+ return this.inner.getRef(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1926,18 +1926,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void registerOutParameter(final int a, final SQLType b) throws SQLException {\n+ public final Ref getRef(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.registerOutParameter(a, b);\n+ return this.inner.getRef(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1946,18 +1946,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void registerOutParameter(final String a, final SQLType b, final int c) throws SQLException {\n+ public final Array getArray(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.registerOutParameter(a, b, c);\n+ return this.inner.getArray(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1966,18 +1966,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void registerOutParameter(final String a, final SQLType b) throws SQLException {\n+ public final Array getArray(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.registerOutParameter(a, b);\n+ return this.inner.getArray(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1986,18 +1986,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void registerOutParameter(final int a, final SQLType b, final String c) throws SQLException {\n+ public final void setURL(final String a, final URL b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.registerOutParameter(a, b, c);\n+ this.inner.setURL(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2006,18 +2006,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void registerOutParameter(final int a, final int b, final String c) throws SQLException {\n+ public final Timestamp getTimestamp(final int a, final Calendar b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.registerOutParameter(a, b, c);\n+ return this.inner.getTimestamp(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2026,18 +2026,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void registerOutParameter(final String a, final int b) throws SQLException {\n+ public final Timestamp getTimestamp(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.registerOutParameter(a, b);\n+ return this.inner.getTimestamp(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2046,18 +2046,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void registerOutParameter(final String a, final int b, final int c) throws SQLException {\n+ public final Timestamp getTimestamp(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.registerOutParameter(a, b, c);\n+ return this.inner.getTimestamp(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2066,18 +2066,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void registerOutParameter(final String a, final int b, final String c) throws SQLException {\n+ public final Timestamp getTimestamp(final String a, final Calendar b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.registerOutParameter(a, b, c);\n+ return this.inner.getTimestamp(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2086,18 +2086,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void registerOutParameter(final int a, final int b) throws SQLException {\n+ public final String getString(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.registerOutParameter(a, b);\n+ return this.inner.getString(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2106,18 +2106,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void registerOutParameter(final int a, final int b, final int c) throws SQLException {\n+ public final String getString(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.registerOutParameter(a, b, c);\n+ return this.inner.getString(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2126,18 +2126,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean wasNull() throws SQLException {\n+ public final BigDecimal getBigDecimal(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.wasNull();\n+ return this.inner.getBigDecimal(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2146,18 +2146,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Blob getBlob(final int a) throws SQLException {\n+ public final BigDecimal getBigDecimal(final int a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getBlob(a);\n+ return this.inner.getBigDecimal(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2166,18 +2166,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Blob getBlob(final String a) throws SQLException {\n+ public final BigDecimal getBigDecimal(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getBlob(a);\n+ return this.inner.getBigDecimal(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2186,18 +2186,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Clob getClob(final String a) throws SQLException {\n+ public final Time getTime(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getClob(a);\n+ return this.inner.getTime(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2206,18 +2206,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Clob getClob(final int a) throws SQLException {\n+ public final Time getTime(final String a, final Calendar b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getClob(a);\n+ return this.inner.getTime(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2226,18 +2226,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final RowId getRowId(final int a) throws SQLException {\n+ public final Time getTime(final int a, final Calendar b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getRowId(a);\n+ return this.inner.getTime(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2246,18 +2246,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final RowId getRowId(final String a) throws SQLException {\n+ public final Time getTime(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getRowId(a);\n+ return this.inner.getTime(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2266,18 +2266,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final NClob getNClob(final String a) throws SQLException {\n+ public final void setTime(final String a, final Time b, final Calendar c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getNClob(a);\n+ this.inner.setTime(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2286,18 +2286,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final NClob getNClob(final int a) throws SQLException {\n+ public final void setTime(final String a, final Time b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getNClob(a);\n+ this.inner.setTime(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2306,18 +2306,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final SQLXML getSQLXML(final String a) throws SQLException {\n+ public final void setDate(final String a, final Date b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getSQLXML(a);\n+ this.inner.setDate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2326,18 +2326,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final SQLXML getSQLXML(final int a) throws SQLException {\n+ public final void setDate(final String a, final Date b, final Calendar c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getSQLXML(a);\n+ this.inner.setDate(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2346,18 +2346,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final String getNString(final String a) throws SQLException {\n+ public final Date getDate(final int a, final Calendar b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getNString(a);\n+ return this.inner.getDate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2366,18 +2366,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final String getNString(final int a) throws SQLException {\n+ public final Date getDate(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getNString(a);\n+ return this.inner.getDate(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2386,18 +2386,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Reader getNCharacterStream(final String a) throws SQLException {\n+ public final Date getDate(final String a, final Calendar b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getNCharacterStream(a);\n+ return this.inner.getDate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2406,18 +2406,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Reader getNCharacterStream(final int a) throws SQLException {\n+ public final Date getDate(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getNCharacterStream(a);\n+ return this.inner.getDate(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2426,18 +2426,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Reader getCharacterStream(final int a) throws SQLException {\n+ public final URL getURL(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getCharacterStream(a);\n+ return this.inner.getURL(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2446,18 +2446,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Reader getCharacterStream(final String a) throws SQLException {\n+ public final URL getURL(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getCharacterStream(a);\n+ return this.inner.getURL(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2465,18 +2465,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean execute() throws SQLException {\n+ public final int executeUpdate() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute();\n+ return this.inner.executeUpdate();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2484,18 +2484,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setBoolean(final int a, final boolean b) throws SQLException {\n+ public final void addBatch() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBoolean(a, b);\n+ this.inner.addBatch();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2503,18 +2503,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setByte(final int a, final byte b) throws SQLException {\n+ public final long executeLargeUpdate() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setByte(a, b);\n+ return this.inner.executeLargeUpdate();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2522,18 +2522,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setShort(final int a, final short b) throws SQLException {\n+ public final void setString(final int a, final String b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setShort(a, b);\n+ this.inner.setString(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2541,18 +2541,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setInt(final int a, final int b) throws SQLException {\n+ public final void setAsciiStream(final int a, final InputStream b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setInt(a, b);\n+ this.inner.setAsciiStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2560,18 +2560,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setLong(final int a, final long b) throws SQLException {\n+ public final void setAsciiStream(final int a, final InputStream b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setLong(a, b);\n+ this.inner.setAsciiStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2579,18 +2579,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setFloat(final int a, final float b) throws SQLException {\n+ public final void setAsciiStream(final int a, final InputStream b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setFloat(a, b);\n+ this.inner.setAsciiStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2598,18 +2598,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setDouble(final int a, final double b) throws SQLException {\n+ public final void setCharacterStream(final int a, final Reader b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setDouble(a, b);\n+ this.inner.setCharacterStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2617,18 +2617,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setURL(final int a, final URL b) throws SQLException {\n+ public final void setCharacterStream(final int a, final Reader b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setURL(a, b);\n+ this.inner.setCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2636,18 +2636,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setArray(final int a, final Array b) throws SQLException {\n+ public final void setCharacterStream(final int a, final Reader b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setArray(a, b);\n+ this.inner.setCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2655,18 +2655,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setTime(final int a, final Time b) throws SQLException {\n+ public final void setBytes(final int a, final byte[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setTime(a, b);\n+ this.inner.setBytes(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2674,18 +2674,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setTime(final int a, final Time b, final Calendar c) throws SQLException {\n+ public final void setBinaryStream(final int a, final InputStream b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setTime(a, b, c);\n+ this.inner.setBinaryStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2693,18 +2693,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setDate(final int a, final Date b) throws SQLException {\n+ public final void setBinaryStream(final int a, final InputStream b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setDate(a, b);\n+ this.inner.setBinaryStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2712,18 +2712,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setDate(final int a, final Date b, final Calendar c) throws SQLException {\n+ public final void setBinaryStream(final int a, final InputStream b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setDate(a, b, c);\n+ this.inner.setBinaryStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2731,18 +2731,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final ResultSetMetaData getMetaData() throws SQLException {\n+ public final void setNull(final int a, final int b, final String c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMetaData();\n+ this.inner.setNull(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2750,23 +2750,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final ResultSet executeQuery() throws SQLException {\n+ public final void setNull(final int a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- final ResultSet innerResultSet = this.inner.executeQuery();\n- if (innerResultSet == null) {\n- return null;\n- }\n- this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n- return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n+ this.inner.setNull(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2774,18 +2769,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int executeUpdate() throws SQLException {\n+ public final void setBigDecimal(final int a, final BigDecimal b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate();\n+ this.inner.setBigDecimal(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2793,18 +2788,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void addBatch() throws SQLException {\n+ public final void setTimestamp(final int a, final Timestamp b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.addBatch();\n+ this.inner.setTimestamp(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2812,18 +2807,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long executeLargeUpdate() throws SQLException {\n+ public final void setTimestamp(final int a, final Timestamp b, final Calendar c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate();\n+ this.inner.setTimestamp(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2831,18 +2826,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setNull(final int a, final int b) throws SQLException {\n+ public final void setUnicodeStream(final int a, final InputStream b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNull(a, b);\n+ this.inner.setUnicodeStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2850,18 +2845,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setNull(final int a, final int b, final String c) throws SQLException {\n+ public final void clearParameters() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNull(a, b, c);\n+ this.inner.clearParameters();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2869,18 +2864,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setBigDecimal(final int a, final BigDecimal b) throws SQLException {\n+ public final void setObject(final int a, final Object b, final SQLType c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBigDecimal(a, b);\n+ this.inner.setObject(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2888,18 +2883,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setString(final int a, final String b) throws SQLException {\n+ public final void setObject(final int a, final Object b, final int c, final int d) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setString(a, b);\n+ this.inner.setObject(a, b, c, d);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2907,18 +2902,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setBytes(final int a, final byte[] b) throws SQLException {\n+ public final void setObject(final int a, final Object b, final SQLType c, final int d) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBytes(a, b);\n+ this.inner.setObject(a, b, c, d);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2926,18 +2921,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setTimestamp(final int a, final Timestamp b) throws SQLException {\n+ public final void setObject(final int a, final Object b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setTimestamp(a, b);\n+ this.inner.setObject(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2945,18 +2940,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setTimestamp(final int a, final Timestamp b, final Calendar c) throws SQLException {\n+ public final void setObject(final int a, final Object b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setTimestamp(a, b, c);\n+ this.inner.setObject(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2964,18 +2959,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setAsciiStream(final int a, final InputStream b, final long c) throws SQLException {\n+ public final void setRef(final int a, final Ref b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setAsciiStream(a, b, c);\n+ this.inner.setRef(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2983,18 +2978,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setAsciiStream(final int a, final InputStream b) throws SQLException {\n+ public final void setBlob(final int a, final InputStream b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setAsciiStream(a, b);\n+ this.inner.setBlob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3002,18 +2997,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setAsciiStream(final int a, final InputStream b, final int c) throws SQLException {\n+ public final void setBlob(final int a, final InputStream b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setAsciiStream(a, b, c);\n+ this.inner.setBlob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3021,18 +3016,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setUnicodeStream(final int a, final InputStream b, final int c) throws SQLException {\n+ public final void setBlob(final int a, final Blob b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setUnicodeStream(a, b, c);\n+ this.inner.setBlob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3040,18 +3035,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setBinaryStream(final int a, final InputStream b) throws SQLException {\n+ public final void setClob(final int a, final Reader b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBinaryStream(a, b);\n+ this.inner.setClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3059,18 +3054,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setBinaryStream(final int a, final InputStream b, final long c) throws SQLException {\n+ public final void setClob(final int a, final Reader b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBinaryStream(a, b, c);\n+ this.inner.setClob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3078,18 +3073,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setBinaryStream(final int a, final InputStream b, final int c) throws SQLException {\n+ public final void setClob(final int a, final Clob b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBinaryStream(a, b, c);\n+ this.inner.setClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3097,18 +3092,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void clearParameters() throws SQLException {\n+ public final ParameterMetaData getParameterMetaData() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.clearParameters();\n+ return this.inner.getParameterMetaData();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3116,18 +3111,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setObject(final int a, final Object b, final SQLType c, final int d) throws SQLException {\n+ public final void setRowId(final int a, final RowId b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b, c, d);\n+ this.inner.setRowId(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3135,18 +3130,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setObject(final int a, final Object b, final SQLType c) throws SQLException {\n+ public final void setNString(final int a, final String b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b, c);\n+ this.inner.setNString(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3154,18 +3149,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setObject(final int a, final Object b, final int c, final int d) throws SQLException {\n+ public final void setNCharacterStream(final int a, final Reader b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b, c, d);\n+ this.inner.setNCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3173,18 +3168,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setObject(final int a, final Object b) throws SQLException {\n+ public final void setNCharacterStream(final int a, final Reader b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b);\n+ this.inner.setNCharacterStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3192,18 +3187,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setObject(final int a, final Object b, final int c) throws SQLException {\n+ public final void setNClob(final int a, final Reader b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b, c);\n+ this.inner.setNClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3211,18 +3206,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setCharacterStream(final int a, final Reader b, final int c) throws SQLException {\n+ public final void setNClob(final int a, final NClob b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setCharacterStream(a, b, c);\n+ this.inner.setNClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3230,18 +3225,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setCharacterStream(final int a, final Reader b, final long c) throws SQLException {\n+ public final void setNClob(final int a, final Reader b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setCharacterStream(a, b, c);\n+ this.inner.setNClob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3249,18 +3244,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setCharacterStream(final int a, final Reader b) throws SQLException {\n+ public final void setSQLXML(final int a, final SQLXML b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setCharacterStream(a, b);\n+ this.inner.setSQLXML(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3268,18 +3263,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setRef(final int a, final Ref b) throws SQLException {\n+ public final boolean execute() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setRef(a, b);\n+ return this.inner.execute();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3287,18 +3282,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setBlob(final int a, final Blob b) throws SQLException {\n+ public final void setBoolean(final int a, final boolean b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBlob(a, b);\n+ this.inner.setBoolean(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3306,18 +3301,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setBlob(final int a, final InputStream b) throws SQLException {\n+ public final void setByte(final int a, final byte b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBlob(a, b);\n+ this.inner.setByte(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3325,18 +3320,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setBlob(final int a, final InputStream b, final long c) throws SQLException {\n+ public final void setShort(final int a, final short b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBlob(a, b, c);\n+ this.inner.setShort(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3344,18 +3339,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setClob(final int a, final Clob b) throws SQLException {\n+ public final void setInt(final int a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setClob(a, b);\n+ this.inner.setInt(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3363,18 +3358,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setClob(final int a, final Reader b) throws SQLException {\n+ public final void setLong(final int a, final long b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setClob(a, b);\n+ this.inner.setLong(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3382,18 +3377,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setClob(final int a, final Reader b, final long c) throws SQLException {\n+ public final void setFloat(final int a, final float b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setClob(a, b, c);\n+ this.inner.setFloat(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3401,18 +3396,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final ParameterMetaData getParameterMetaData() throws SQLException {\n+ public final void setDouble(final int a, final double b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getParameterMetaData();\n+ this.inner.setDouble(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3420,18 +3415,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setRowId(final int a, final RowId b) throws SQLException {\n+ public final void setURL(final int a, final URL b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setRowId(a, b);\n+ this.inner.setURL(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3439,18 +3434,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setNString(final int a, final String b) throws SQLException {\n+ public final void setArray(final int a, final Array b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNString(a, b);\n+ this.inner.setArray(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3458,18 +3453,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setNCharacterStream(final int a, final Reader b, final long c) throws SQLException {\n+ public final void setTime(final int a, final Time b, final Calendar c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNCharacterStream(a, b, c);\n+ this.inner.setTime(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3477,18 +3472,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setNCharacterStream(final int a, final Reader b) throws SQLException {\n+ public final void setTime(final int a, final Time b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNCharacterStream(a, b);\n+ this.inner.setTime(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3496,18 +3491,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setNClob(final int a, final NClob b) throws SQLException {\n+ public final void setDate(final int a, final Date b, final Calendar c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNClob(a, b);\n+ this.inner.setDate(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3515,18 +3510,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setNClob(final int a, final Reader b) throws SQLException {\n+ public final void setDate(final int a, final Date b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNClob(a, b);\n+ this.inner.setDate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3534,18 +3529,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setNClob(final int a, final Reader b, final long c) throws SQLException {\n+ public final ResultSetMetaData getMetaData() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNClob(a, b, c);\n+ return this.inner.getMetaData();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3553,18 +3548,23 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setSQLXML(final int a, final SQLXML b) throws SQLException {\n+ public final ResultSet executeQuery() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setSQLXML(a, b);\n+ final ResultSet innerResultSet = this.inner.executeQuery();\n+ if (innerResultSet == null) {\n+ return null;\n+ }\n+ this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n+ return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3572,18 +3572,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean execute(final String a, final String[] b) throws SQLException {\n+ public final int executeUpdate(final String a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute(a, b);\n+ return this.inner.executeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3591,18 +3591,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean execute(final String a, final int b) throws SQLException {\n+ public final int executeUpdate(final String a, final String[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute(a, b);\n+ return this.inner.executeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3610,18 +3610,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean execute(final String a) throws SQLException {\n+ public final int executeUpdate(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute(a);\n+ return this.inner.executeUpdate(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3629,18 +3629,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean execute(final String a, final int[] b) throws SQLException {\n+ public final int executeUpdate(final String a, final int[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute(a, b);\n+ return this.inner.executeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3648,56 +3648,37 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void close() throws SQLException {\n+ public final int getMaxFieldSize() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- if (!this.isDetached()) {\n- if (this.is_cached) {\n- this.parentPooledConnection.checkinStatement((Statement)this.inner);\n- }\n- else {\n- this.parentPooledConnection.markInactiveUncachedStatement((Statement)this.inner);\n- try {\n- this.inner.close();\n- }\n- catch (final Exception e) {\n- if (NewProxyCallableStatement.logger.isLoggable(MLevel.WARNING)) {\n- NewProxyCallableStatement.logger.log(MLevel.WARNING, \"Exception on close of inner statement.\", (Throwable)e);\n- }\n- final SQLException sqle = SqlUtils.toSQLException((Throwable)e);\n- throw sqle;\n- }\n- }\n- this.detach();\n- this.inner = null;\n- this.creatorProxy = null;\n- }\n+ return this.inner.getMaxFieldSize();\n }\n catch (final NullPointerException exc) {\n- if (!this.isDetached()) {\n- throw exc;\n+ if (this.isDetached()) {\n+ throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n+ throw exc;\n }\n catch (final Exception exc2) {\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void cancel() throws SQLException {\n+ public final void setMaxFieldSize(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.cancel();\n+ this.inner.setMaxFieldSize(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3705,18 +3686,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean isClosed() throws SQLException {\n+ public final int getMaxRows() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.isDetached();\n+ return this.inner.getMaxRows();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3724,21 +3705,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final Connection getConnection() throws SQLException {\n+ public final void setMaxRows(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- if (!this.isDetached()) {\n- return (Connection)this.creatorProxy;\n- }\n- throw new SQLException(\"You cannot operate on a closed Statement!\");\n+ this.inner.setMaxRows(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3746,23 +3724,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final ResultSet executeQuery(final String a) throws SQLException {\n+ public final void setEscapeProcessing(final boolean a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- final ResultSet innerResultSet = this.inner.executeQuery(a);\n- if (innerResultSet == null) {\n- return null;\n- }\n- this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n- return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n+ this.inner.setEscapeProcessing(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3770,18 +3743,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int executeUpdate(final String a, final String[] b) throws SQLException {\n+ public final int getQueryTimeout() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate(a, b);\n+ return this.inner.getQueryTimeout();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3789,18 +3762,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int executeUpdate(final String a) throws SQLException {\n+ public final void setQueryTimeout(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate(a);\n+ this.inner.setQueryTimeout(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3808,18 +3781,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int executeUpdate(final String a, final int b) throws SQLException {\n+ public final SQLWarning getWarnings() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate(a, b);\n+ return this.inner.getWarnings();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3827,18 +3800,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int executeUpdate(final String a, final int[] b) throws SQLException {\n+ public final void clearWarnings() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate(a, b);\n+ this.inner.clearWarnings();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3846,18 +3819,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getMaxFieldSize() throws SQLException {\n+ public final void setCursorName(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMaxFieldSize();\n+ this.inner.setCursorName(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3865,18 +3838,23 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setMaxFieldSize(final int a) throws SQLException {\n+ public final ResultSet getResultSet() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setMaxFieldSize(a);\n+ final ResultSet innerResultSet = this.inner.getResultSet();\n+ if (innerResultSet == null) {\n+ return null;\n+ }\n+ this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n+ return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3884,18 +3862,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getMaxRows() throws SQLException {\n+ public final int getUpdateCount() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMaxRows();\n+ return this.inner.getUpdateCount();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3903,18 +3881,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setMaxRows(final int a) throws SQLException {\n+ public final boolean getMoreResults() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setMaxRows(a);\n+ return this.inner.getMoreResults();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3922,18 +3900,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setEscapeProcessing(final boolean a) throws SQLException {\n+ public final boolean getMoreResults(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setEscapeProcessing(a);\n+ return this.inner.getMoreResults(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3941,18 +3919,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getQueryTimeout() throws SQLException {\n+ public final void setFetchDirection(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getQueryTimeout();\n+ this.inner.setFetchDirection(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3960,18 +3938,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setQueryTimeout(final int a) throws SQLException {\n+ public final int getFetchDirection() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setQueryTimeout(a);\n+ return this.inner.getFetchDirection();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3979,18 +3957,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final SQLWarning getWarnings() throws SQLException {\n+ public final void setFetchSize(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getWarnings();\n+ this.inner.setFetchSize(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -3998,18 +3976,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void clearWarnings() throws SQLException {\n+ public final int getFetchSize() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.clearWarnings();\n+ return this.inner.getFetchSize();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4017,18 +3995,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setCursorName(final String a) throws SQLException {\n+ public final int getResultSetConcurrency() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setCursorName(a);\n+ return this.inner.getResultSetConcurrency();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4036,23 +4014,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final ResultSet getResultSet() throws SQLException {\n+ public final int getResultSetType() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- final ResultSet innerResultSet = this.inner.getResultSet();\n- if (innerResultSet == null) {\n- return null;\n- }\n- this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n- return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n+ return this.inner.getResultSetType();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4060,18 +4033,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getUpdateCount() throws SQLException {\n+ public final void addBatch(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getUpdateCount();\n+ this.inner.addBatch(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4079,18 +4052,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean getMoreResults() throws SQLException {\n+ public final void clearBatch() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMoreResults();\n+ this.inner.clearBatch();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4098,18 +4071,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean getMoreResults(final int a) throws SQLException {\n+ public final int[] executeBatch() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMoreResults(a);\n+ return this.inner.executeBatch();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4117,18 +4090,23 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setFetchDirection(final int a) throws SQLException {\n+ public final ResultSet getGeneratedKeys() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setFetchDirection(a);\n+ final ResultSet innerResultSet = this.inner.getGeneratedKeys();\n+ if (innerResultSet == null) {\n+ return null;\n+ }\n+ this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n+ return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4136,18 +4114,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getFetchDirection() throws SQLException {\n+ public final int getResultSetHoldability() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getFetchDirection();\n+ return this.inner.getResultSetHoldability();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4155,18 +4133,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setFetchSize(final int a) throws SQLException {\n+ public final void setPoolable(final boolean a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setFetchSize(a);\n+ this.inner.setPoolable(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4174,18 +4152,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getFetchSize() throws SQLException {\n+ public final boolean isPoolable() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getFetchSize();\n+ return this.inner.isPoolable();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4193,18 +4171,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getResultSetConcurrency() throws SQLException {\n+ public final void closeOnCompletion() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getResultSetConcurrency();\n+ this.inner.closeOnCompletion();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4212,18 +4190,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getResultSetType() throws SQLException {\n+ public final boolean isCloseOnCompletion() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getResultSetType();\n+ return this.inner.isCloseOnCompletion();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4231,18 +4209,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void addBatch(final String a) throws SQLException {\n+ public final long getLargeUpdateCount() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.addBatch(a);\n+ return this.inner.getLargeUpdateCount();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4250,18 +4228,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void clearBatch() throws SQLException {\n+ public final void setLargeMaxRows(final long a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.clearBatch();\n+ this.inner.setLargeMaxRows(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4269,18 +4247,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int[] executeBatch() throws SQLException {\n+ public final long getLargeMaxRows() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeBatch();\n+ return this.inner.getLargeMaxRows();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4288,23 +4266,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final ResultSet getGeneratedKeys() throws SQLException {\n+ public final long[] executeLargeBatch() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- final ResultSet innerResultSet = this.inner.getGeneratedKeys();\n- if (innerResultSet == null) {\n- return null;\n- }\n- this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n- return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n+ return this.inner.executeLargeBatch();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4312,18 +4285,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getResultSetHoldability() throws SQLException {\n+ public final long executeLargeUpdate(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getResultSetHoldability();\n+ return this.inner.executeLargeUpdate(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4331,18 +4304,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setPoolable(final boolean a) throws SQLException {\n+ public final long executeLargeUpdate(final String a, final int[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setPoolable(a);\n+ return this.inner.executeLargeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4350,18 +4323,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean isPoolable() throws SQLException {\n+ public final long executeLargeUpdate(final String a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.isPoolable();\n+ return this.inner.executeLargeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4369,18 +4342,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void closeOnCompletion() throws SQLException {\n+ public final long executeLargeUpdate(final String a, final String[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.closeOnCompletion();\n+ return this.inner.executeLargeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4388,18 +4361,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean isCloseOnCompletion() throws SQLException {\n+ public final String enquoteLiteral(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.isCloseOnCompletion();\n+ return this.inner.enquoteLiteral(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4407,18 +4380,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long getLargeUpdateCount() throws SQLException {\n+ public final String enquoteIdentifier(final String a, final boolean b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getLargeUpdateCount();\n+ return this.inner.enquoteIdentifier(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4426,18 +4399,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setLargeMaxRows(final long a) throws SQLException {\n+ public final boolean isSimpleIdentifier(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setLargeMaxRows(a);\n+ return this.inner.isSimpleIdentifier(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4445,18 +4418,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long getLargeMaxRows() throws SQLException {\n+ public final String enquoteNCharLiteral(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getLargeMaxRows();\n+ return this.inner.enquoteNCharLiteral(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4464,18 +4437,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long[] executeLargeBatch() throws SQLException {\n+ public final boolean execute(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeBatch();\n+ return this.inner.execute(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4483,18 +4456,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long executeLargeUpdate(final String a, final String[] b) throws SQLException {\n+ public final boolean execute(final String a, final String[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate(a, b);\n+ return this.inner.execute(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4502,18 +4475,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long executeLargeUpdate(final String a, final int[] b) throws SQLException {\n+ public final boolean execute(final String a, final int[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate(a, b);\n+ return this.inner.execute(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4521,18 +4494,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long executeLargeUpdate(final String a, final int b) throws SQLException {\n+ public final boolean execute(final String a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate(a, b);\n+ return this.inner.execute(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4540,37 +4513,56 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long executeLargeUpdate(final String a) throws SQLException {\n+ public final void close() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate(a);\n+ if (!this.isDetached()) {\n+ if (this.is_cached) {\n+ this.parentPooledConnection.checkinStatement((Statement)this.inner);\n+ }\n+ else {\n+ this.parentPooledConnection.markInactiveUncachedStatement((Statement)this.inner);\n+ try {\n+ this.inner.close();\n+ }\n+ catch (final Exception e) {\n+ if (NewProxyCallableStatement.logger.isLoggable(MLevel.WARNING)) {\n+ NewProxyCallableStatement.logger.log(MLevel.WARNING, \"Exception on close of inner statement.\", (Throwable)e);\n+ }\n+ final SQLException sqle = SqlUtils.toSQLException((Throwable)e);\n+ throw sqle;\n+ }\n+ }\n+ this.detach();\n+ this.inner = null;\n+ this.creatorProxy = null;\n+ }\n }\n catch (final NullPointerException exc) {\n- if (this.isDetached()) {\n- throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n+ if (!this.isDetached()) {\n+ throw exc;\n }\n- throw exc;\n }\n catch (final Exception exc2) {\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final String enquoteLiteral(final String a) throws SQLException {\n+ public final void cancel() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.enquoteLiteral(a);\n+ this.inner.cancel();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4578,18 +4570,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final String enquoteIdentifier(final String a, final boolean b) throws SQLException {\n+ public final boolean isClosed() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.enquoteIdentifier(a, b);\n+ return this.isDetached();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4597,18 +4589,21 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean isSimpleIdentifier(final String a) throws SQLException {\n+ public final Connection getConnection() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.isSimpleIdentifier(a);\n+ if (!this.isDetached()) {\n+ return (Connection)this.creatorProxy;\n+ }\n+ throw new SQLException(\"You cannot operate on a closed Statement!\");\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4616,18 +4611,23 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final String enquoteNCharLiteral(final String a) throws SQLException {\n+ public final ResultSet executeQuery(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.enquoteNCharLiteral(a);\n+ final ResultSet innerResultSet = this.inner.executeQuery(a);\n+ if (innerResultSet == null) {\n+ return null;\n+ }\n+ this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n+ return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4635,18 +4635,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final Object unwrap(final Class a) throws SQLException {\n+ public final boolean isWrapperFor(final Class a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.unwrap((Class)a);\n+ return this.inner.isWrapperFor(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -4654,18 +4654,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean isWrapperFor(final Class a) throws SQLException {\n+ public final Object unwrap(final Class a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.isWrapperFor(a);\n+ return this.inner.unwrap((Class)a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n"}]}, {"source1": "com/mchange/v2/c3p0/impl/NewProxyConnection.class", "source2": "com/mchange/v2/c3p0/impl/NewProxyConnection.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -1,33 +1,33 @@\n \n package com.mchange.v2.c3p0.impl;\n \n import com.mchange.v2.log.MLog;\n import java.lang.reflect.InvocationTargetException;\n import java.sql.ResultSet;\n+import java.sql.CallableStatement;\n+import java.lang.reflect.Method;\n+import com.mchange.v2.util.ResourceClosedException;\n+import com.mchange.v2.log.MLevel;\n+import java.sql.PreparedStatement;\n+import java.sql.Statement;\n import java.sql.ShardingKey;\n+import java.util.concurrent.Executor;\n import java.sql.Struct;\n import java.sql.Array;\n import java.sql.SQLClientInfoException;\n import java.util.Properties;\n import java.sql.SQLXML;\n import java.sql.NClob;\n import java.sql.Blob;\n import java.sql.Clob;\n-import java.sql.SQLWarning;\n import java.sql.Savepoint;\n import java.util.Map;\n-import java.sql.CallableStatement;\n-import java.lang.reflect.Method;\n-import com.mchange.v2.util.ResourceClosedException;\n-import com.mchange.v2.log.MLevel;\n-import java.sql.PreparedStatement;\n-import java.sql.Statement;\n-import java.util.concurrent.Executor;\n import java.sql.SQLException;\n+import java.sql.SQLWarning;\n import javax.sql.ConnectionEventListener;\n import com.mchange.v2.log.MLogger;\n import java.sql.DatabaseMetaData;\n import com.mchange.v2.c3p0.C3P0ProxyConnection;\n import java.sql.Connection;\n \n public final class NewProxyConnection implements Connection, C3P0ProxyConnection\n@@ -43,18 +43,18 @@\n this.txn_known_resolved = true;\n this.metaData = null;\n this.cel = (ConnectionEventListener)new NewProxyConnection.NewProxyConnection$1(this);\n this.inner = inner;\n }\n \n @Override\n- public synchronized void setReadOnly(final boolean a) throws SQLException {\n+ public synchronized SQLWarning getWarnings() throws SQLException {\n try {\n- this.inner.setReadOnly(a);\n- this.parentPooledConnection.markNewReadOnly(a);\n+ this.txn_known_resolved = false;\n+ return this.inner.getWarnings();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -63,41 +63,38 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void close() throws SQLException {\n+ public synchronized void clearWarnings() throws SQLException {\n try {\n- if (!this.isDetached()) {\n- final NewPooledConnection npc = this.parentPooledConnection;\n- this.detach();\n- npc.markClosedProxyConnection(this, this.txn_known_resolved);\n- this.inner = null;\n- }\n+ this.txn_known_resolved = false;\n+ this.inner.clearWarnings();\n }\n catch (final NullPointerException exc) {\n- if (!this.isDetached()) {\n- throw exc;\n+ if (this.isDetached()) {\n+ throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n+ throw exc;\n }\n catch (final Exception exc2) {\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized boolean isReadOnly() throws SQLException {\n+ public synchronized String nativeSQL(final String a) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.isReadOnly();\n+ return this.inner.nativeSQL(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -106,18 +103,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized boolean isValid(final int a) throws SQLException {\n+ public synchronized boolean getAutoCommit() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.isValid(a);\n+ return this.inner.getAutoCommit();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -126,18 +123,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void commit() throws SQLException {\n+ public synchronized String getCatalog() throws SQLException {\n try {\n- this.txn_known_resolved = true;\n- this.inner.commit();\n+ this.txn_known_resolved = false;\n+ return this.inner.getCatalog();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -146,18 +143,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void abort(final Executor a) throws SQLException {\n+ public synchronized int getTransactionIsolation() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- this.inner.abort(a);\n+ return this.inner.getTransactionIsolation();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -166,20 +163,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized Statement createStatement(final int a, final int b, final int c) throws SQLException {\n+ public synchronized Map getTypeMap() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- final Statement innerStmt = this.inner.createStatement(a, b, c);\n- this.parentPooledConnection.markActiveUncachedStatement(innerStmt);\n- return (Statement)new NewProxyStatement(innerStmt, this.parentPooledConnection, false, this);\n+ return this.inner.getTypeMap();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -188,20 +183,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized Statement createStatement() throws SQLException {\n+ public synchronized int getHoldability() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- final Statement innerStmt = this.inner.createStatement();\n- this.parentPooledConnection.markActiveUncachedStatement(innerStmt);\n- return (Statement)new NewProxyStatement(innerStmt, this.parentPooledConnection, false, this);\n+ return this.inner.getHoldability();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -210,20 +203,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized Statement createStatement(final int a, final int b) throws SQLException {\n+ public synchronized Savepoint setSavepoint(final String a) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- final Statement innerStmt = this.inner.createStatement(a, b);\n- this.parentPooledConnection.markActiveUncachedStatement(innerStmt);\n- return (Statement)new NewProxyStatement(innerStmt, this.parentPooledConnection, false, this);\n+ return this.inner.setSavepoint(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -232,37 +223,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized PreparedStatement prepareStatement(final String a, final int[] b) throws SQLException {\n+ public synchronized Savepoint setSavepoint() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- if (this.parentPooledConnection.isStatementCaching()) {\n- try {\n- final Class[] argTypes = { String.class, int[].class };\n- final Method method = Connection.class.getMethod(\"prepareStatement\", (Class[])argTypes);\n- final Object[] args = { a, b };\n- final PreparedStatement innerStmt = (PreparedStatement)this.parentPooledConnection.checkoutStatement(method, args);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, true, this);\n- }\n- catch (final ResourceClosedException e) {\n- if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n- NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a Statement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n- }\n- final PreparedStatement innerStmt = this.inner.prepareStatement(a, b);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n- }\n- }\n- final PreparedStatement innerStmt = this.inner.prepareStatement(a, b);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n+ return this.inner.setSavepoint();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -271,37 +243,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized PreparedStatement prepareStatement(final String a) throws SQLException {\n+ public synchronized void releaseSavepoint(final Savepoint a) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- if (this.parentPooledConnection.isStatementCaching()) {\n- try {\n- final Class[] argTypes = { String.class };\n- final Method method = Connection.class.getMethod(\"prepareStatement\", (Class[])argTypes);\n- final Object[] args = { a };\n- final PreparedStatement innerStmt = (PreparedStatement)this.parentPooledConnection.checkoutStatement(method, args);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, true, this);\n- }\n- catch (final ResourceClosedException e) {\n- if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n- NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a Statement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n- }\n- final PreparedStatement innerStmt = this.inner.prepareStatement(a);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n- }\n- }\n- final PreparedStatement innerStmt = this.inner.prepareStatement(a);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n+ this.inner.releaseSavepoint(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -310,37 +263,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized PreparedStatement prepareStatement(final String a, final int b) throws SQLException {\n+ public synchronized Clob createClob() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- if (this.parentPooledConnection.isStatementCaching()) {\n- try {\n- final Class[] argTypes = { String.class, Integer.TYPE };\n- final Method method = Connection.class.getMethod(\"prepareStatement\", (Class[])argTypes);\n- final Object[] args = { a, new Integer(b) };\n- final PreparedStatement innerStmt = (PreparedStatement)this.parentPooledConnection.checkoutStatement(method, args);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, true, this);\n- }\n- catch (final ResourceClosedException e) {\n- if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n- NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a Statement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n- }\n- final PreparedStatement innerStmt = this.inner.prepareStatement(a, b);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n- }\n- }\n- final PreparedStatement innerStmt = this.inner.prepareStatement(a, b);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n+ return this.inner.createClob();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -349,37 +283,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized PreparedStatement prepareStatement(final String a, final int b, final int c, final int d) throws SQLException {\n+ public synchronized Blob createBlob() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- if (this.parentPooledConnection.isStatementCaching()) {\n- try {\n- final Class[] argTypes = { String.class, Integer.TYPE, Integer.TYPE, Integer.TYPE };\n- final Method method = Connection.class.getMethod(\"prepareStatement\", (Class[])argTypes);\n- final Object[] args = { a, new Integer(b), new Integer(c), new Integer(d) };\n- final PreparedStatement innerStmt = (PreparedStatement)this.parentPooledConnection.checkoutStatement(method, args);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, true, this);\n- }\n- catch (final ResourceClosedException e) {\n- if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n- NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a Statement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n- }\n- final PreparedStatement innerStmt = this.inner.prepareStatement(a, b, c, d);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n- }\n- }\n- final PreparedStatement innerStmt = this.inner.prepareStatement(a, b, c, d);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n+ return this.inner.createBlob();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -388,37 +303,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized PreparedStatement prepareStatement(final String a, final String[] b) throws SQLException {\n+ public synchronized NClob createNClob() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- if (this.parentPooledConnection.isStatementCaching()) {\n- try {\n- final Class[] argTypes = { String.class, String[].class };\n- final Method method = Connection.class.getMethod(\"prepareStatement\", (Class[])argTypes);\n- final Object[] args = { a, b };\n- final PreparedStatement innerStmt = (PreparedStatement)this.parentPooledConnection.checkoutStatement(method, args);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, true, this);\n- }\n- catch (final ResourceClosedException e) {\n- if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n- NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a Statement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n- }\n- final PreparedStatement innerStmt = this.inner.prepareStatement(a, b);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n- }\n- }\n- final PreparedStatement innerStmt = this.inner.prepareStatement(a, b);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n+ return this.inner.createNClob();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -427,37 +323,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized PreparedStatement prepareStatement(final String a, final int b, final int c) throws SQLException {\n+ public synchronized SQLXML createSQLXML() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- if (this.parentPooledConnection.isStatementCaching()) {\n- try {\n- final Class[] argTypes = { String.class, Integer.TYPE, Integer.TYPE };\n- final Method method = Connection.class.getMethod(\"prepareStatement\", (Class[])argTypes);\n- final Object[] args = { a, new Integer(b), new Integer(c) };\n- final PreparedStatement innerStmt = (PreparedStatement)this.parentPooledConnection.checkoutStatement(method, args);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, true, this);\n- }\n- catch (final ResourceClosedException e) {\n- if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n- NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a Statement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n- }\n- final PreparedStatement innerStmt = this.inner.prepareStatement(a, b, c);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n- }\n- }\n- final PreparedStatement innerStmt = this.inner.prepareStatement(a, b, c);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n+ return this.inner.createSQLXML();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -466,37 +343,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized CallableStatement prepareCall(final String a) throws SQLException {\n+ public synchronized void setClientInfo(final Properties a) throws SQLClientInfoException {\n try {\n this.txn_known_resolved = false;\n- if (this.parentPooledConnection.isStatementCaching()) {\n- try {\n- final Class[] argTypes = { String.class };\n- final Method method = Connection.class.getMethod(\"prepareCall\", (Class[])argTypes);\n- final Object[] args = { a };\n- final CallableStatement innerStmt = (CallableStatement)this.parentPooledConnection.checkoutStatement(method, args);\n- return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, true, this);\n- }\n- catch (final ResourceClosedException e) {\n- if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n- NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a CallableStatement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n- }\n- final CallableStatement innerStmt = this.inner.prepareCall(a);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, false, this);\n- }\n- }\n- final CallableStatement innerStmt = this.inner.prepareCall(a);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, false, this);\n+ this.inner.setClientInfo(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -505,37 +363,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized CallableStatement prepareCall(final String a, final int b, final int c, final int d) throws SQLException {\n+ public synchronized void setClientInfo(final String a, final String b) throws SQLClientInfoException {\n try {\n this.txn_known_resolved = false;\n- if (this.parentPooledConnection.isStatementCaching()) {\n- try {\n- final Class[] argTypes = { String.class, Integer.TYPE, Integer.TYPE, Integer.TYPE };\n- final Method method = Connection.class.getMethod(\"prepareCall\", (Class[])argTypes);\n- final Object[] args = { a, new Integer(b), new Integer(c), new Integer(d) };\n- final CallableStatement innerStmt = (CallableStatement)this.parentPooledConnection.checkoutStatement(method, args);\n- return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, true, this);\n- }\n- catch (final ResourceClosedException e) {\n- if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n- NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a CallableStatement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n- }\n- final CallableStatement innerStmt = this.inner.prepareCall(a, b, c, d);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, false, this);\n- }\n- }\n- final CallableStatement innerStmt = this.inner.prepareCall(a, b, c, d);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, false, this);\n+ this.inner.setClientInfo(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -544,37 +383,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized CallableStatement prepareCall(final String a, final int b, final int c) throws SQLException {\n+ public synchronized Properties getClientInfo() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- if (this.parentPooledConnection.isStatementCaching()) {\n- try {\n- final Class[] argTypes = { String.class, Integer.TYPE, Integer.TYPE };\n- final Method method = Connection.class.getMethod(\"prepareCall\", (Class[])argTypes);\n- final Object[] args = { a, new Integer(b), new Integer(c) };\n- final CallableStatement innerStmt = (CallableStatement)this.parentPooledConnection.checkoutStatement(method, args);\n- return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, true, this);\n- }\n- catch (final ResourceClosedException e) {\n- if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n- NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a CallableStatement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n- }\n- final CallableStatement innerStmt = this.inner.prepareCall(a, b, c);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, false, this);\n- }\n- }\n- final CallableStatement innerStmt = this.inner.prepareCall(a, b, c);\n- this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n- return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, false, this);\n+ return this.inner.getClientInfo();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -583,22 +403,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized DatabaseMetaData getMetaData() throws SQLException {\n+ public synchronized String getClientInfo(final String a) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- if (this.metaData == null) {\n- final DatabaseMetaData innerMetaData = this.inner.getMetaData();\n- this.metaData = (DatabaseMetaData)new NewProxyDatabaseMetaData(innerMetaData, this.parentPooledConnection, this);\n- }\n- return this.metaData;\n+ return this.inner.getClientInfo(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -607,18 +423,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void setTransactionIsolation(final int a) throws SQLException {\n+ public synchronized Array createArrayOf(final String a, final Object[] b) throws SQLException {\n try {\n- this.inner.setTransactionIsolation(a);\n- this.parentPooledConnection.markNewTxnIsolation(a);\n+ this.txn_known_resolved = false;\n+ return this.inner.createArrayOf(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -627,18 +443,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void setCatalog(final String a) throws SQLException {\n+ public synchronized Struct createStruct(final String a, final Object[] b) throws SQLException {\n try {\n- this.inner.setCatalog(a);\n- this.parentPooledConnection.markNewCatalog(a);\n+ this.txn_known_resolved = false;\n+ return this.inner.createStruct(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -647,18 +463,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void setHoldability(final int a) throws SQLException {\n+ public synchronized void setSchema(final String a) throws SQLException {\n try {\n- this.inner.setHoldability(a);\n- this.parentPooledConnection.markNewHoldability(a);\n+ this.txn_known_resolved = false;\n+ this.inner.setSchema(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -667,18 +483,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void setTypeMap(final Map a) throws SQLException {\n+ public synchronized String getSchema() throws SQLException {\n try {\n- this.inner.setTypeMap(a);\n- this.parentPooledConnection.markNewTypeMap(a);\n+ this.txn_known_resolved = false;\n+ return this.inner.getSchema();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -687,17 +503,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized boolean isClosed() throws SQLException {\n+ public synchronized void setNetworkTimeout(final Executor a, final int b) throws SQLException {\n try {\n- return this.isDetached();\n+ this.txn_known_resolved = false;\n+ this.inner.setNetworkTimeout(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -706,18 +523,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void rollback(final Savepoint a) throws SQLException {\n+ public synchronized int getNetworkTimeout() throws SQLException {\n try {\n- this.txn_known_resolved = true;\n- this.inner.rollback(a);\n+ this.txn_known_resolved = false;\n+ return this.inner.getNetworkTimeout();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -726,18 +543,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void rollback() throws SQLException {\n+ public synchronized void beginRequest() throws SQLException {\n try {\n- this.txn_known_resolved = true;\n- this.inner.rollback();\n+ this.txn_known_resolved = false;\n+ this.inner.beginRequest();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -746,18 +563,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void setAutoCommit(final boolean a) throws SQLException {\n+ public synchronized void endRequest() throws SQLException {\n try {\n- this.txn_known_resolved = true;\n- this.inner.setAutoCommit(a);\n+ this.txn_known_resolved = false;\n+ this.inner.endRequest();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -766,18 +583,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized SQLWarning getWarnings() throws SQLException {\n+ public synchronized boolean setShardingKeyIfValid(final ShardingKey a, final ShardingKey b, final int c) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.getWarnings();\n+ return this.inner.setShardingKeyIfValid(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -786,18 +603,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void clearWarnings() throws SQLException {\n+ public synchronized boolean setShardingKeyIfValid(final ShardingKey a, final int b) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- this.inner.clearWarnings();\n+ return this.inner.setShardingKeyIfValid(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -806,18 +623,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized String nativeSQL(final String a) throws SQLException {\n+ public synchronized void setShardingKey(final ShardingKey a, final ShardingKey b) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.nativeSQL(a);\n+ this.inner.setShardingKey(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -826,18 +643,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized boolean getAutoCommit() throws SQLException {\n+ public synchronized void setShardingKey(final ShardingKey a) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.getAutoCommit();\n+ this.inner.setShardingKey(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -846,18 +663,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized String getCatalog() throws SQLException {\n+ public synchronized void setReadOnly(final boolean a) throws SQLException {\n try {\n- this.txn_known_resolved = false;\n- return this.inner.getCatalog();\n+ this.inner.setReadOnly(a);\n+ this.parentPooledConnection.markNewReadOnly(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -866,38 +683,41 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized int getTransactionIsolation() throws SQLException {\n+ public synchronized void close() throws SQLException {\n try {\n- this.txn_known_resolved = false;\n- return this.inner.getTransactionIsolation();\n+ if (!this.isDetached()) {\n+ final NewPooledConnection npc = this.parentPooledConnection;\n+ this.detach();\n+ npc.markClosedProxyConnection(this, this.txn_known_resolved);\n+ this.inner = null;\n+ }\n }\n catch (final NullPointerException exc) {\n- if (this.isDetached()) {\n- throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n+ if (!this.isDetached()) {\n+ throw exc;\n }\n- throw exc;\n }\n catch (final Exception exc2) {\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized Map getTypeMap() throws SQLException {\n+ public synchronized boolean isReadOnly() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.getTypeMap();\n+ return this.inner.isReadOnly();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -906,18 +726,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized int getHoldability() throws SQLException {\n+ public synchronized boolean isValid(final int a) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.getHoldability();\n+ return this.inner.isValid(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -926,18 +746,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized Savepoint setSavepoint() throws SQLException {\n+ public synchronized void commit() throws SQLException {\n try {\n- this.txn_known_resolved = false;\n- return this.inner.setSavepoint();\n+ this.txn_known_resolved = true;\n+ this.inner.commit();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -946,18 +766,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized Savepoint setSavepoint(final String a) throws SQLException {\n+ public synchronized void abort(final Executor a) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.setSavepoint(a);\n+ this.inner.abort(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -966,18 +786,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void releaseSavepoint(final Savepoint a) throws SQLException {\n+ public synchronized Statement createStatement() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- this.inner.releaseSavepoint(a);\n+ final Statement innerStmt = this.inner.createStatement();\n+ this.parentPooledConnection.markActiveUncachedStatement(innerStmt);\n+ return (Statement)new NewProxyStatement(innerStmt, this.parentPooledConnection, false, this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -986,18 +808,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized Clob createClob() throws SQLException {\n+ public synchronized Statement createStatement(final int a, final int b) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.createClob();\n+ final Statement innerStmt = this.inner.createStatement(a, b);\n+ this.parentPooledConnection.markActiveUncachedStatement(innerStmt);\n+ return (Statement)new NewProxyStatement(innerStmt, this.parentPooledConnection, false, this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1006,18 +830,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized Blob createBlob() throws SQLException {\n+ public synchronized Statement createStatement(final int a, final int b, final int c) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.createBlob();\n+ final Statement innerStmt = this.inner.createStatement(a, b, c);\n+ this.parentPooledConnection.markActiveUncachedStatement(innerStmt);\n+ return (Statement)new NewProxyStatement(innerStmt, this.parentPooledConnection, false, this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1026,18 +852,37 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized NClob createNClob() throws SQLException {\n+ public synchronized PreparedStatement prepareStatement(final String a, final int b) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.createNClob();\n+ if (this.parentPooledConnection.isStatementCaching()) {\n+ try {\n+ final Class[] argTypes = { String.class, Integer.TYPE };\n+ final Method method = Connection.class.getMethod(\"prepareStatement\", (Class[])argTypes);\n+ final Object[] args = { a, new Integer(b) };\n+ final PreparedStatement innerStmt = (PreparedStatement)this.parentPooledConnection.checkoutStatement(method, args);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, true, this);\n+ }\n+ catch (final ResourceClosedException e) {\n+ if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n+ NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a Statement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n+ }\n+ final PreparedStatement innerStmt = this.inner.prepareStatement(a, b);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n+ }\n+ }\n+ final PreparedStatement innerStmt = this.inner.prepareStatement(a, b);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1046,18 +891,37 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized SQLXML createSQLXML() throws SQLException {\n+ public synchronized PreparedStatement prepareStatement(final String a, final int[] b) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.createSQLXML();\n+ if (this.parentPooledConnection.isStatementCaching()) {\n+ try {\n+ final Class[] argTypes = { String.class, int[].class };\n+ final Method method = Connection.class.getMethod(\"prepareStatement\", (Class[])argTypes);\n+ final Object[] args = { a, b };\n+ final PreparedStatement innerStmt = (PreparedStatement)this.parentPooledConnection.checkoutStatement(method, args);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, true, this);\n+ }\n+ catch (final ResourceClosedException e) {\n+ if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n+ NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a Statement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n+ }\n+ final PreparedStatement innerStmt = this.inner.prepareStatement(a, b);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n+ }\n+ }\n+ final PreparedStatement innerStmt = this.inner.prepareStatement(a, b);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1066,18 +930,37 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void setClientInfo(final Properties a) throws SQLClientInfoException {\n+ public synchronized PreparedStatement prepareStatement(final String a, final String[] b) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- this.inner.setClientInfo(a);\n+ if (this.parentPooledConnection.isStatementCaching()) {\n+ try {\n+ final Class[] argTypes = { String.class, String[].class };\n+ final Method method = Connection.class.getMethod(\"prepareStatement\", (Class[])argTypes);\n+ final Object[] args = { a, b };\n+ final PreparedStatement innerStmt = (PreparedStatement)this.parentPooledConnection.checkoutStatement(method, args);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, true, this);\n+ }\n+ catch (final ResourceClosedException e) {\n+ if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n+ NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a Statement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n+ }\n+ final PreparedStatement innerStmt = this.inner.prepareStatement(a, b);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n+ }\n+ }\n+ final PreparedStatement innerStmt = this.inner.prepareStatement(a, b);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1086,18 +969,37 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void setClientInfo(final String a, final String b) throws SQLClientInfoException {\n+ public synchronized PreparedStatement prepareStatement(final String a, final int b, final int c) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- this.inner.setClientInfo(a, b);\n+ if (this.parentPooledConnection.isStatementCaching()) {\n+ try {\n+ final Class[] argTypes = { String.class, Integer.TYPE, Integer.TYPE };\n+ final Method method = Connection.class.getMethod(\"prepareStatement\", (Class[])argTypes);\n+ final Object[] args = { a, new Integer(b), new Integer(c) };\n+ final PreparedStatement innerStmt = (PreparedStatement)this.parentPooledConnection.checkoutStatement(method, args);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, true, this);\n+ }\n+ catch (final ResourceClosedException e) {\n+ if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n+ NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a Statement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n+ }\n+ final PreparedStatement innerStmt = this.inner.prepareStatement(a, b, c);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n+ }\n+ }\n+ final PreparedStatement innerStmt = this.inner.prepareStatement(a, b, c);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1106,18 +1008,37 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized Properties getClientInfo() throws SQLException {\n+ public synchronized PreparedStatement prepareStatement(final String a, final int b, final int c, final int d) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.getClientInfo();\n+ if (this.parentPooledConnection.isStatementCaching()) {\n+ try {\n+ final Class[] argTypes = { String.class, Integer.TYPE, Integer.TYPE, Integer.TYPE };\n+ final Method method = Connection.class.getMethod(\"prepareStatement\", (Class[])argTypes);\n+ final Object[] args = { a, new Integer(b), new Integer(c), new Integer(d) };\n+ final PreparedStatement innerStmt = (PreparedStatement)this.parentPooledConnection.checkoutStatement(method, args);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, true, this);\n+ }\n+ catch (final ResourceClosedException e) {\n+ if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n+ NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a Statement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n+ }\n+ final PreparedStatement innerStmt = this.inner.prepareStatement(a, b, c, d);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n+ }\n+ }\n+ final PreparedStatement innerStmt = this.inner.prepareStatement(a, b, c, d);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1126,18 +1047,37 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized String getClientInfo(final String a) throws SQLException {\n+ public synchronized PreparedStatement prepareStatement(final String a) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.getClientInfo(a);\n+ if (this.parentPooledConnection.isStatementCaching()) {\n+ try {\n+ final Class[] argTypes = { String.class };\n+ final Method method = Connection.class.getMethod(\"prepareStatement\", (Class[])argTypes);\n+ final Object[] args = { a };\n+ final PreparedStatement innerStmt = (PreparedStatement)this.parentPooledConnection.checkoutStatement(method, args);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, true, this);\n+ }\n+ catch (final ResourceClosedException e) {\n+ if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n+ NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a Statement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n+ }\n+ final PreparedStatement innerStmt = this.inner.prepareStatement(a);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n+ }\n+ }\n+ final PreparedStatement innerStmt = this.inner.prepareStatement(a);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (PreparedStatement)new NewProxyPreparedStatement(innerStmt, this.parentPooledConnection, false, this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1146,18 +1086,37 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized Array createArrayOf(final String a, final Object[] b) throws SQLException {\n+ public synchronized CallableStatement prepareCall(final String a, final int b, final int c) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.createArrayOf(a, b);\n+ if (this.parentPooledConnection.isStatementCaching()) {\n+ try {\n+ final Class[] argTypes = { String.class, Integer.TYPE, Integer.TYPE };\n+ final Method method = Connection.class.getMethod(\"prepareCall\", (Class[])argTypes);\n+ final Object[] args = { a, new Integer(b), new Integer(c) };\n+ final CallableStatement innerStmt = (CallableStatement)this.parentPooledConnection.checkoutStatement(method, args);\n+ return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, true, this);\n+ }\n+ catch (final ResourceClosedException e) {\n+ if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n+ NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a CallableStatement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n+ }\n+ final CallableStatement innerStmt = this.inner.prepareCall(a, b, c);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, false, this);\n+ }\n+ }\n+ final CallableStatement innerStmt = this.inner.prepareCall(a, b, c);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, false, this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1166,18 +1125,37 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized Struct createStruct(final String a, final Object[] b) throws SQLException {\n+ public synchronized CallableStatement prepareCall(final String a) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.createStruct(a, b);\n+ if (this.parentPooledConnection.isStatementCaching()) {\n+ try {\n+ final Class[] argTypes = { String.class };\n+ final Method method = Connection.class.getMethod(\"prepareCall\", (Class[])argTypes);\n+ final Object[] args = { a };\n+ final CallableStatement innerStmt = (CallableStatement)this.parentPooledConnection.checkoutStatement(method, args);\n+ return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, true, this);\n+ }\n+ catch (final ResourceClosedException e) {\n+ if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n+ NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a CallableStatement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n+ }\n+ final CallableStatement innerStmt = this.inner.prepareCall(a);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, false, this);\n+ }\n+ }\n+ final CallableStatement innerStmt = this.inner.prepareCall(a);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, false, this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1186,18 +1164,37 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void setSchema(final String a) throws SQLException {\n+ public synchronized CallableStatement prepareCall(final String a, final int b, final int c, final int d) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- this.inner.setSchema(a);\n+ if (this.parentPooledConnection.isStatementCaching()) {\n+ try {\n+ final Class[] argTypes = { String.class, Integer.TYPE, Integer.TYPE, Integer.TYPE };\n+ final Method method = Connection.class.getMethod(\"prepareCall\", (Class[])argTypes);\n+ final Object[] args = { a, new Integer(b), new Integer(c), new Integer(d) };\n+ final CallableStatement innerStmt = (CallableStatement)this.parentPooledConnection.checkoutStatement(method, args);\n+ return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, true, this);\n+ }\n+ catch (final ResourceClosedException e) {\n+ if (NewProxyConnection.logger.isLoggable(MLevel.FINE)) {\n+ NewProxyConnection.logger.log(MLevel.FINE, \"A Connection tried to prepare a CallableStatement via a Statement cache that is already closed. This can happen -- rarely -- if a DataSource is closed or reset() while Connections are checked-out and in use.\", (Throwable)e);\n+ }\n+ final CallableStatement innerStmt = this.inner.prepareCall(a, b, c, d);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, false, this);\n+ }\n+ }\n+ final CallableStatement innerStmt = this.inner.prepareCall(a, b, c, d);\n+ this.parentPooledConnection.markActiveUncachedStatement((Statement)innerStmt);\n+ return (CallableStatement)new NewProxyCallableStatement(innerStmt, this.parentPooledConnection, false, this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1206,18 +1203,22 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized String getSchema() throws SQLException {\n+ public synchronized DatabaseMetaData getMetaData() throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.getSchema();\n+ if (this.metaData == null) {\n+ final DatabaseMetaData innerMetaData = this.inner.getMetaData();\n+ this.metaData = (DatabaseMetaData)new NewProxyDatabaseMetaData(innerMetaData, this.parentPooledConnection, this);\n+ }\n+ return this.metaData;\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1226,18 +1227,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void setNetworkTimeout(final Executor a, final int b) throws SQLException {\n+ public synchronized void setTransactionIsolation(final int a) throws SQLException {\n try {\n- this.txn_known_resolved = false;\n- this.inner.setNetworkTimeout(a, b);\n+ this.inner.setTransactionIsolation(a);\n+ this.parentPooledConnection.markNewTxnIsolation(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1246,18 +1247,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized int getNetworkTimeout() throws SQLException {\n+ public synchronized void setCatalog(final String a) throws SQLException {\n try {\n- this.txn_known_resolved = false;\n- return this.inner.getNetworkTimeout();\n+ this.inner.setCatalog(a);\n+ this.parentPooledConnection.markNewCatalog(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1266,18 +1267,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void beginRequest() throws SQLException {\n+ public synchronized void setHoldability(final int a) throws SQLException {\n try {\n- this.txn_known_resolved = false;\n- this.inner.beginRequest();\n+ this.inner.setHoldability(a);\n+ this.parentPooledConnection.markNewHoldability(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1286,18 +1287,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void endRequest() throws SQLException {\n+ public synchronized void setTypeMap(final Map a) throws SQLException {\n try {\n- this.txn_known_resolved = false;\n- this.inner.endRequest();\n+ this.inner.setTypeMap(a);\n+ this.parentPooledConnection.markNewTypeMap(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1306,18 +1307,17 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized boolean setShardingKeyIfValid(final ShardingKey a, final ShardingKey b, final int c) throws SQLException {\n+ public synchronized boolean isClosed() throws SQLException {\n try {\n- this.txn_known_resolved = false;\n- return this.inner.setShardingKeyIfValid(a, b, c);\n+ return this.isDetached();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1326,18 +1326,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized boolean setShardingKeyIfValid(final ShardingKey a, final int b) throws SQLException {\n+ public synchronized void rollback(final Savepoint a) throws SQLException {\n try {\n- this.txn_known_resolved = false;\n- return this.inner.setShardingKeyIfValid(a, b);\n+ this.txn_known_resolved = true;\n+ this.inner.rollback(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1346,18 +1346,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void setShardingKey(final ShardingKey a) throws SQLException {\n+ public synchronized void rollback() throws SQLException {\n try {\n- this.txn_known_resolved = false;\n- this.inner.setShardingKey(a);\n+ this.txn_known_resolved = true;\n+ this.inner.rollback();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1366,18 +1366,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public synchronized void setShardingKey(final ShardingKey a, final ShardingKey b) throws SQLException {\n+ public synchronized void setAutoCommit(final boolean a) throws SQLException {\n try {\n- this.txn_known_resolved = false;\n- this.inner.setShardingKey(a, b);\n+ this.txn_known_resolved = true;\n+ this.inner.setAutoCommit(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1385,18 +1385,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public synchronized Object unwrap(final Class a) throws SQLException {\n+ public synchronized boolean isWrapperFor(final Class a) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.unwrap((Class)a);\n+ return this.inner.isWrapperFor(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n@@ -1404,18 +1404,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public synchronized boolean isWrapperFor(final Class a) throws SQLException {\n+ public synchronized Object unwrap(final Class a) throws SQLException {\n try {\n this.txn_known_resolved = false;\n- return this.inner.isWrapperFor(a);\n+ return this.inner.unwrap((Class)a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Connection!!!\", exc);\n }\n throw exc;\n }\n"}]}, {"source1": "com/mchange/v2/c3p0/impl/NewProxyDatabaseMetaData.class", "source2": "com/mchange/v2/c3p0/impl/NewProxyDatabaseMetaData.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -1,15 +1,15 @@\n \n package com.mchange.v2.c3p0.impl;\n \n import com.mchange.v2.log.MLog;\n-import java.sql.RowIdLifetime;\n import java.sql.Connection;\n-import java.sql.SQLException;\n+import java.sql.RowIdLifetime;\n import java.sql.ResultSet;\n+import java.sql.SQLException;\n import javax.sql.ConnectionEventListener;\n import com.mchange.v2.log.MLogger;\n import java.sql.DatabaseMetaData;\n \n public final class NewProxyDatabaseMetaData implements DatabaseMetaData\n {\n protected DatabaseMetaData inner;\n@@ -20,94 +20,14 @@\n \n public NewProxyDatabaseMetaData(final DatabaseMetaData inner) {\n this.cel = (ConnectionEventListener)new NewProxyDatabaseMetaData.NewProxyDatabaseMetaData$1(this);\n this.inner = inner;\n }\n \n @Override\n- public final ResultSet getAttributes(final String a, final String b, final String c, final String d) throws SQLException {\n- try {\n- final ResultSet innerResultSet = this.inner.getAttributes(a, b, c, d);\n- if (innerResultSet == null) {\n- return null;\n- }\n- return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n- }\n- catch (final NullPointerException exc) {\n- if (this.isDetached()) {\n- throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n- }\n- throw exc;\n- }\n- catch (final Exception exc2) {\n- if (!this.isDetached()) {\n- throw new RuntimeException(exc2);\n- }\n- throw new RuntimeException(exc2);\n- }\n- }\n- \n- @Override\n- public final boolean isReadOnly() throws SQLException {\n- try {\n- return this.inner.isReadOnly();\n- }\n- catch (final NullPointerException exc) {\n- if (this.isDetached()) {\n- throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n- }\n- throw exc;\n- }\n- catch (final Exception exc2) {\n- if (!this.isDetached()) {\n- throw new RuntimeException(exc2);\n- }\n- throw new RuntimeException(exc2);\n- }\n- }\n- \n- @Override\n- public final String getURL() throws SQLException {\n- try {\n- return this.inner.getURL();\n- }\n- catch (final NullPointerException exc) {\n- if (this.isDetached()) {\n- throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n- }\n- throw exc;\n- }\n- catch (final Exception exc2) {\n- if (!this.isDetached()) {\n- throw new RuntimeException(exc2);\n- }\n- throw new RuntimeException(exc2);\n- }\n- }\n- \n- @Override\n- public final Connection getConnection() throws SQLException {\n- try {\n- return (Connection)this.proxyCon;\n- }\n- catch (final NullPointerException exc) {\n- if (this.isDetached()) {\n- throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n- }\n- throw exc;\n- }\n- catch (final Exception exc2) {\n- if (!this.isDetached()) {\n- throw new RuntimeException(exc2);\n- }\n- throw new RuntimeException(exc2);\n- }\n- }\n- \n- @Override\n public final int getResultSetHoldability() throws SQLException {\n try {\n return this.inner.getResultSetHoldability();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n@@ -756,17 +676,17 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean supportsConvert() throws SQLException {\n+ public final boolean supportsConvert(final int a, final int b) throws SQLException {\n try {\n- return this.inner.supportsConvert();\n+ return this.inner.supportsConvert(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n }\n throw exc;\n }\n@@ -775,17 +695,17 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean supportsConvert(final int a, final int b) throws SQLException {\n+ public final boolean supportsConvert() throws SQLException {\n try {\n- return this.inner.supportsConvert(a, b);\n+ return this.inner.supportsConvert();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n }\n throw exc;\n }\n@@ -2364,17 +2284,17 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final ResultSet getSchemas(final String a, final String b) throws SQLException {\n+ public final ResultSet getSchemas() throws SQLException {\n try {\n- final ResultSet innerResultSet = this.inner.getSchemas(a, b);\n+ final ResultSet innerResultSet = this.inner.getSchemas();\n if (innerResultSet == null) {\n return null;\n }\n return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n@@ -2387,17 +2307,17 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final ResultSet getSchemas() throws SQLException {\n+ public final ResultSet getSchemas(final String a, final String b) throws SQLException {\n try {\n- final ResultSet innerResultSet = this.inner.getSchemas();\n+ final ResultSet innerResultSet = this.inner.getSchemas(a, b);\n if (innerResultSet == null) {\n return null;\n }\n return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n@@ -3459,17 +3379,78 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object unwrap(final Class a) throws SQLException {\n+ public final ResultSet getAttributes(final String a, final String b, final String c, final String d) throws SQLException {\n try {\n- return this.inner.unwrap((Class)a);\n+ final ResultSet innerResultSet = this.inner.getAttributes(a, b, c, d);\n+ if (innerResultSet == null) {\n+ return null;\n+ }\n+ return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n+ }\n+ catch (final NullPointerException exc) {\n+ if (this.isDetached()) {\n+ throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n+ }\n+ throw exc;\n+ }\n+ catch (final Exception exc2) {\n+ if (!this.isDetached()) {\n+ throw new RuntimeException(exc2);\n+ }\n+ throw new RuntimeException(exc2);\n+ }\n+ }\n+ \n+ @Override\n+ public final boolean isReadOnly() throws SQLException {\n+ try {\n+ return this.inner.isReadOnly();\n+ }\n+ catch (final NullPointerException exc) {\n+ if (this.isDetached()) {\n+ throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n+ }\n+ throw exc;\n+ }\n+ catch (final Exception exc2) {\n+ if (!this.isDetached()) {\n+ throw new RuntimeException(exc2);\n+ }\n+ throw new RuntimeException(exc2);\n+ }\n+ }\n+ \n+ @Override\n+ public final String getURL() throws SQLException {\n+ try {\n+ return this.inner.getURL();\n+ }\n+ catch (final NullPointerException exc) {\n+ if (this.isDetached()) {\n+ throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n+ }\n+ throw exc;\n+ }\n+ catch (final Exception exc2) {\n+ if (!this.isDetached()) {\n+ throw new RuntimeException(exc2);\n+ }\n+ throw new RuntimeException(exc2);\n+ }\n+ }\n+ \n+ @Override\n+ public final Connection getConnection() throws SQLException {\n+ try {\n+ return (Connection)this.proxyCon;\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n }\n throw exc;\n }\n@@ -3488,14 +3469,33 @@\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n }\n throw exc;\n }\n+ catch (final Exception exc2) {\n+ if (!this.isDetached()) {\n+ throw new RuntimeException(exc2);\n+ }\n+ throw new RuntimeException(exc2);\n+ }\n+ }\n+ \n+ @Override\n+ public final Object unwrap(final Class a) throws SQLException {\n+ try {\n+ return this.inner.unwrap((Class)a);\n+ }\n+ catch (final NullPointerException exc) {\n+ if (this.isDetached()) {\n+ throw new IllegalStateException(\"You can't operate on a closed DatabaseMetaData!!!\", exc);\n+ }\n+ throw exc;\n+ }\n catch (final Exception exc2) {\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n"}]}, {"source1": "com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.class", "source2": "com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -1,37 +1,37 @@\n \n package com.mchange.v2.c3p0.impl;\n \n import com.mchange.v2.log.MLog;\n import java.lang.reflect.InvocationTargetException;\n import java.lang.reflect.Method;\n-import java.sql.SQLWarning;\n import java.sql.Connection;\n import com.mchange.v2.sql.SqlUtils;\n import com.mchange.v2.log.MLevel;\n+import java.sql.SQLWarning;\n+import java.sql.Statement;\n+import java.sql.ResultSet;\n+import java.sql.ResultSetMetaData;\n+import java.sql.Date;\n+import java.sql.Time;\n+import java.sql.Array;\n+import java.net.URL;\n import java.sql.SQLXML;\n import java.sql.NClob;\n import java.sql.RowId;\n import java.sql.ParameterMetaData;\n import java.sql.Clob;\n import java.sql.Blob;\n import java.sql.Ref;\n-import java.io.Reader;\n import java.sql.SQLType;\n-import java.io.InputStream;\n+import java.util.Calendar;\n import java.sql.Timestamp;\n import java.math.BigDecimal;\n-import java.sql.Statement;\n-import java.sql.ResultSet;\n-import java.sql.ResultSetMetaData;\n-import java.sql.Date;\n-import java.util.Calendar;\n-import java.sql.Time;\n-import java.sql.Array;\n-import java.net.URL;\n+import java.io.Reader;\n+import java.io.InputStream;\n import java.sql.SQLException;\n import javax.sql.ConnectionEventListener;\n import com.mchange.v2.log.MLogger;\n import com.mchange.v2.c3p0.C3P0ProxyStatement;\n import java.sql.PreparedStatement;\n \n public final class NewProxyPreparedStatement implements PreparedStatement, C3P0ProxyStatement\n@@ -45,18 +45,18 @@\n \n public NewProxyPreparedStatement(final PreparedStatement inner) {\n this.cel = (ConnectionEventListener)new NewProxyPreparedStatement.NewProxyPreparedStatement$1(this);\n this.inner = inner;\n }\n \n @Override\n- public final boolean execute() throws SQLException {\n+ public final int executeUpdate() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute();\n+ return this.inner.executeUpdate();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -65,18 +65,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBoolean(final int a, final boolean b) throws SQLException {\n+ public final void addBatch() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBoolean(a, b);\n+ this.inner.addBatch();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -85,18 +85,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setByte(final int a, final byte b) throws SQLException {\n+ public final long executeLargeUpdate() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setByte(a, b);\n+ return this.inner.executeLargeUpdate();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -105,18 +105,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setShort(final int a, final short b) throws SQLException {\n+ public final void setString(final int a, final String b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setShort(a, b);\n+ this.inner.setString(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -125,18 +125,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setInt(final int a, final int b) throws SQLException {\n+ public final void setAsciiStream(final int a, final InputStream b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setInt(a, b);\n+ this.inner.setAsciiStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -145,18 +145,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setLong(final int a, final long b) throws SQLException {\n+ public final void setAsciiStream(final int a, final InputStream b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setLong(a, b);\n+ this.inner.setAsciiStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -165,18 +165,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setFloat(final int a, final float b) throws SQLException {\n+ public final void setAsciiStream(final int a, final InputStream b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setFloat(a, b);\n+ this.inner.setAsciiStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -185,18 +185,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setDouble(final int a, final double b) throws SQLException {\n+ public final void setCharacterStream(final int a, final Reader b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setDouble(a, b);\n+ this.inner.setCharacterStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -205,18 +205,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setURL(final int a, final URL b) throws SQLException {\n+ public final void setCharacterStream(final int a, final Reader b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setURL(a, b);\n+ this.inner.setCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -225,18 +225,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setArray(final int a, final Array b) throws SQLException {\n+ public final void setCharacterStream(final int a, final Reader b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setArray(a, b);\n+ this.inner.setCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -245,18 +245,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setTime(final int a, final Time b) throws SQLException {\n+ public final void setBytes(final int a, final byte[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setTime(a, b);\n+ this.inner.setBytes(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -265,18 +265,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setTime(final int a, final Time b, final Calendar c) throws SQLException {\n+ public final void setBinaryStream(final int a, final InputStream b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setTime(a, b, c);\n+ this.inner.setBinaryStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -285,18 +285,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setDate(final int a, final Date b) throws SQLException {\n+ public final void setBinaryStream(final int a, final InputStream b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setDate(a, b);\n+ this.inner.setBinaryStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -305,18 +305,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setDate(final int a, final Date b, final Calendar c) throws SQLException {\n+ public final void setBinaryStream(final int a, final InputStream b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setDate(a, b, c);\n+ this.inner.setBinaryStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -325,18 +325,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final ResultSetMetaData getMetaData() throws SQLException {\n+ public final void setNull(final int a, final int b, final String c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMetaData();\n+ this.inner.setNull(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -345,23 +345,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final ResultSet executeQuery() throws SQLException {\n+ public final void setNull(final int a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- final ResultSet innerResultSet = this.inner.executeQuery();\n- if (innerResultSet == null) {\n- return null;\n- }\n- this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n- return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n+ this.inner.setNull(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -370,18 +365,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int executeUpdate() throws SQLException {\n+ public final void setBigDecimal(final int a, final BigDecimal b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate();\n+ this.inner.setBigDecimal(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -390,18 +385,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void addBatch() throws SQLException {\n+ public final void setTimestamp(final int a, final Timestamp b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.addBatch();\n+ this.inner.setTimestamp(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -410,18 +405,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final long executeLargeUpdate() throws SQLException {\n+ public final void setTimestamp(final int a, final Timestamp b, final Calendar c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate();\n+ this.inner.setTimestamp(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -430,18 +425,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNull(final int a, final int b) throws SQLException {\n+ public final void setUnicodeStream(final int a, final InputStream b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNull(a, b);\n+ this.inner.setUnicodeStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -450,18 +445,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNull(final int a, final int b, final String c) throws SQLException {\n+ public final void clearParameters() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNull(a, b, c);\n+ this.inner.clearParameters();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -470,18 +465,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBigDecimal(final int a, final BigDecimal b) throws SQLException {\n+ public final void setObject(final int a, final Object b, final SQLType c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBigDecimal(a, b);\n+ this.inner.setObject(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -490,18 +485,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setString(final int a, final String b) throws SQLException {\n+ public final void setObject(final int a, final Object b, final int c, final int d) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setString(a, b);\n+ this.inner.setObject(a, b, c, d);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -510,18 +505,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBytes(final int a, final byte[] b) throws SQLException {\n+ public final void setObject(final int a, final Object b, final SQLType c, final int d) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBytes(a, b);\n+ this.inner.setObject(a, b, c, d);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -530,18 +525,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setTimestamp(final int a, final Timestamp b) throws SQLException {\n+ public final void setObject(final int a, final Object b, final int c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setTimestamp(a, b);\n+ this.inner.setObject(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -550,18 +545,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setTimestamp(final int a, final Timestamp b, final Calendar c) throws SQLException {\n+ public final void setObject(final int a, final Object b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setTimestamp(a, b, c);\n+ this.inner.setObject(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -570,18 +565,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setAsciiStream(final int a, final InputStream b, final long c) throws SQLException {\n+ public final void setRef(final int a, final Ref b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setAsciiStream(a, b, c);\n+ this.inner.setRef(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -590,18 +585,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setAsciiStream(final int a, final InputStream b) throws SQLException {\n+ public final void setBlob(final int a, final InputStream b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setAsciiStream(a, b);\n+ this.inner.setBlob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -610,18 +605,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setAsciiStream(final int a, final InputStream b, final int c) throws SQLException {\n+ public final void setBlob(final int a, final InputStream b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setAsciiStream(a, b, c);\n+ this.inner.setBlob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -630,18 +625,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setUnicodeStream(final int a, final InputStream b, final int c) throws SQLException {\n+ public final void setBlob(final int a, final Blob b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setUnicodeStream(a, b, c);\n+ this.inner.setBlob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -650,18 +645,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBinaryStream(final int a, final InputStream b) throws SQLException {\n+ public final void setClob(final int a, final Reader b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBinaryStream(a, b);\n+ this.inner.setClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -670,18 +665,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBinaryStream(final int a, final InputStream b, final long c) throws SQLException {\n+ public final void setClob(final int a, final Reader b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBinaryStream(a, b, c);\n+ this.inner.setClob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -690,18 +685,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBinaryStream(final int a, final InputStream b, final int c) throws SQLException {\n+ public final void setClob(final int a, final Clob b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBinaryStream(a, b, c);\n+ this.inner.setClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -710,18 +705,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void clearParameters() throws SQLException {\n+ public final ParameterMetaData getParameterMetaData() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.clearParameters();\n+ return this.inner.getParameterMetaData();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -730,18 +725,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setObject(final int a, final Object b, final SQLType c, final int d) throws SQLException {\n+ public final void setRowId(final int a, final RowId b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b, c, d);\n+ this.inner.setRowId(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -750,18 +745,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setObject(final int a, final Object b, final SQLType c) throws SQLException {\n+ public final void setNString(final int a, final String b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b, c);\n+ this.inner.setNString(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -770,18 +765,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setObject(final int a, final Object b, final int c, final int d) throws SQLException {\n+ public final void setNCharacterStream(final int a, final Reader b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b, c, d);\n+ this.inner.setNCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -790,18 +785,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setObject(final int a, final Object b) throws SQLException {\n+ public final void setNCharacterStream(final int a, final Reader b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b);\n+ this.inner.setNCharacterStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -810,18 +805,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setObject(final int a, final Object b, final int c) throws SQLException {\n+ public final void setNClob(final int a, final Reader b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setObject(a, b, c);\n+ this.inner.setNClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -830,18 +825,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setCharacterStream(final int a, final Reader b, final int c) throws SQLException {\n+ public final void setNClob(final int a, final NClob b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setCharacterStream(a, b, c);\n+ this.inner.setNClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -850,18 +845,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setCharacterStream(final int a, final Reader b, final long c) throws SQLException {\n+ public final void setNClob(final int a, final Reader b, final long c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setCharacterStream(a, b, c);\n+ this.inner.setNClob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -870,18 +865,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setCharacterStream(final int a, final Reader b) throws SQLException {\n+ public final void setSQLXML(final int a, final SQLXML b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setCharacterStream(a, b);\n+ this.inner.setSQLXML(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -890,18 +885,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setRef(final int a, final Ref b) throws SQLException {\n+ public final boolean execute() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setRef(a, b);\n+ return this.inner.execute();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -910,18 +905,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBlob(final int a, final Blob b) throws SQLException {\n+ public final void setBoolean(final int a, final boolean b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBlob(a, b);\n+ this.inner.setBoolean(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -930,18 +925,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBlob(final int a, final InputStream b) throws SQLException {\n+ public final void setByte(final int a, final byte b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBlob(a, b);\n+ this.inner.setByte(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -950,18 +945,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setBlob(final int a, final InputStream b, final long c) throws SQLException {\n+ public final void setShort(final int a, final short b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setBlob(a, b, c);\n+ this.inner.setShort(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -970,18 +965,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setClob(final int a, final Clob b) throws SQLException {\n+ public final void setInt(final int a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setClob(a, b);\n+ this.inner.setInt(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -990,18 +985,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setClob(final int a, final Reader b) throws SQLException {\n+ public final void setLong(final int a, final long b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setClob(a, b);\n+ this.inner.setLong(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1010,18 +1005,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setClob(final int a, final Reader b, final long c) throws SQLException {\n+ public final void setFloat(final int a, final float b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setClob(a, b, c);\n+ this.inner.setFloat(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1030,18 +1025,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final ParameterMetaData getParameterMetaData() throws SQLException {\n+ public final void setDouble(final int a, final double b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getParameterMetaData();\n+ this.inner.setDouble(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1050,18 +1045,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setRowId(final int a, final RowId b) throws SQLException {\n+ public final void setURL(final int a, final URL b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setRowId(a, b);\n+ this.inner.setURL(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1070,18 +1065,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNString(final int a, final String b) throws SQLException {\n+ public final void setArray(final int a, final Array b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNString(a, b);\n+ this.inner.setArray(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1090,18 +1085,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNCharacterStream(final int a, final Reader b, final long c) throws SQLException {\n+ public final void setTime(final int a, final Time b, final Calendar c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNCharacterStream(a, b, c);\n+ this.inner.setTime(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1110,18 +1105,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNCharacterStream(final int a, final Reader b) throws SQLException {\n+ public final void setTime(final int a, final Time b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNCharacterStream(a, b);\n+ this.inner.setTime(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1130,18 +1125,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNClob(final int a, final NClob b) throws SQLException {\n+ public final void setDate(final int a, final Date b, final Calendar c) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNClob(a, b);\n+ this.inner.setDate(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1150,18 +1145,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNClob(final int a, final Reader b) throws SQLException {\n+ public final void setDate(final int a, final Date b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNClob(a, b);\n+ this.inner.setDate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1170,18 +1165,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setNClob(final int a, final Reader b, final long c) throws SQLException {\n+ public final ResultSetMetaData getMetaData() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setNClob(a, b, c);\n+ return this.inner.getMetaData();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1190,18 +1185,23 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setSQLXML(final int a, final SQLXML b) throws SQLException {\n+ public final ResultSet executeQuery() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setSQLXML(a, b);\n+ final ResultSet innerResultSet = this.inner.executeQuery();\n+ if (innerResultSet == null) {\n+ return null;\n+ }\n+ this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n+ return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1209,18 +1209,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean execute(final String a, final String[] b) throws SQLException {\n+ public final int executeUpdate(final String a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute(a, b);\n+ return this.inner.executeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1228,18 +1228,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean execute(final String a, final int b) throws SQLException {\n+ public final int executeUpdate(final String a, final String[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute(a, b);\n+ return this.inner.executeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1247,18 +1247,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean execute(final String a) throws SQLException {\n+ public final int executeUpdate(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute(a);\n+ return this.inner.executeUpdate(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1266,18 +1266,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean execute(final String a, final int[] b) throws SQLException {\n+ public final int executeUpdate(final String a, final int[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute(a, b);\n+ return this.inner.executeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1285,56 +1285,37 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void close() throws SQLException {\n+ public final int getMaxFieldSize() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- if (!this.isDetached()) {\n- if (this.is_cached) {\n- this.parentPooledConnection.checkinStatement((Statement)this.inner);\n- }\n- else {\n- this.parentPooledConnection.markInactiveUncachedStatement((Statement)this.inner);\n- try {\n- this.inner.close();\n- }\n- catch (final Exception e) {\n- if (NewProxyPreparedStatement.logger.isLoggable(MLevel.WARNING)) {\n- NewProxyPreparedStatement.logger.log(MLevel.WARNING, \"Exception on close of inner statement.\", (Throwable)e);\n- }\n- final SQLException sqle = SqlUtils.toSQLException((Throwable)e);\n- throw sqle;\n- }\n- }\n- this.detach();\n- this.inner = null;\n- this.creatorProxy = null;\n- }\n+ return this.inner.getMaxFieldSize();\n }\n catch (final NullPointerException exc) {\n- if (!this.isDetached()) {\n- throw exc;\n+ if (this.isDetached()) {\n+ throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n+ throw exc;\n }\n catch (final Exception exc2) {\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void cancel() throws SQLException {\n+ public final void setMaxFieldSize(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.cancel();\n+ this.inner.setMaxFieldSize(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1342,18 +1323,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean isClosed() throws SQLException {\n+ public final int getMaxRows() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.isDetached();\n+ return this.inner.getMaxRows();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1361,21 +1342,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final Connection getConnection() throws SQLException {\n+ public final void setMaxRows(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- if (!this.isDetached()) {\n- return (Connection)this.creatorProxy;\n- }\n- throw new SQLException(\"You cannot operate on a closed Statement!\");\n+ this.inner.setMaxRows(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1383,23 +1361,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final ResultSet executeQuery(final String a) throws SQLException {\n+ public final void setEscapeProcessing(final boolean a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- final ResultSet innerResultSet = this.inner.executeQuery(a);\n- if (innerResultSet == null) {\n- return null;\n- }\n- this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n- return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n+ this.inner.setEscapeProcessing(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1407,18 +1380,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int executeUpdate(final String a, final String[] b) throws SQLException {\n+ public final int getQueryTimeout() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate(a, b);\n+ return this.inner.getQueryTimeout();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1426,18 +1399,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int executeUpdate(final String a) throws SQLException {\n+ public final void setQueryTimeout(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate(a);\n+ this.inner.setQueryTimeout(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1445,18 +1418,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int executeUpdate(final String a, final int b) throws SQLException {\n+ public final SQLWarning getWarnings() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate(a, b);\n+ return this.inner.getWarnings();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1464,18 +1437,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int executeUpdate(final String a, final int[] b) throws SQLException {\n+ public final void clearWarnings() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate(a, b);\n+ this.inner.clearWarnings();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1483,18 +1456,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getMaxFieldSize() throws SQLException {\n+ public final void setCursorName(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMaxFieldSize();\n+ this.inner.setCursorName(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1502,18 +1475,23 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setMaxFieldSize(final int a) throws SQLException {\n+ public final ResultSet getResultSet() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setMaxFieldSize(a);\n+ final ResultSet innerResultSet = this.inner.getResultSet();\n+ if (innerResultSet == null) {\n+ return null;\n+ }\n+ this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n+ return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1521,18 +1499,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getMaxRows() throws SQLException {\n+ public final int getUpdateCount() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMaxRows();\n+ return this.inner.getUpdateCount();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1540,18 +1518,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setMaxRows(final int a) throws SQLException {\n+ public final boolean getMoreResults() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setMaxRows(a);\n+ return this.inner.getMoreResults();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1559,18 +1537,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setEscapeProcessing(final boolean a) throws SQLException {\n+ public final boolean getMoreResults(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setEscapeProcessing(a);\n+ return this.inner.getMoreResults(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1578,18 +1556,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getQueryTimeout() throws SQLException {\n+ public final void setFetchDirection(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getQueryTimeout();\n+ this.inner.setFetchDirection(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1597,18 +1575,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setQueryTimeout(final int a) throws SQLException {\n+ public final int getFetchDirection() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setQueryTimeout(a);\n+ return this.inner.getFetchDirection();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1616,18 +1594,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final SQLWarning getWarnings() throws SQLException {\n+ public final void setFetchSize(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getWarnings();\n+ this.inner.setFetchSize(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1635,18 +1613,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void clearWarnings() throws SQLException {\n+ public final int getFetchSize() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.clearWarnings();\n+ return this.inner.getFetchSize();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1654,18 +1632,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setCursorName(final String a) throws SQLException {\n+ public final int getResultSetConcurrency() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setCursorName(a);\n+ return this.inner.getResultSetConcurrency();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1673,23 +1651,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final ResultSet getResultSet() throws SQLException {\n+ public final int getResultSetType() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- final ResultSet innerResultSet = this.inner.getResultSet();\n- if (innerResultSet == null) {\n- return null;\n- }\n- this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n- return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n+ return this.inner.getResultSetType();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1697,18 +1670,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getUpdateCount() throws SQLException {\n+ public final void addBatch(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getUpdateCount();\n+ this.inner.addBatch(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1716,18 +1689,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean getMoreResults() throws SQLException {\n+ public final void clearBatch() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMoreResults();\n+ this.inner.clearBatch();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1735,18 +1708,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean getMoreResults(final int a) throws SQLException {\n+ public final int[] executeBatch() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMoreResults(a);\n+ return this.inner.executeBatch();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1754,18 +1727,23 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setFetchDirection(final int a) throws SQLException {\n+ public final ResultSet getGeneratedKeys() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setFetchDirection(a);\n+ final ResultSet innerResultSet = this.inner.getGeneratedKeys();\n+ if (innerResultSet == null) {\n+ return null;\n+ }\n+ this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n+ return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1773,18 +1751,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getFetchDirection() throws SQLException {\n+ public final int getResultSetHoldability() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getFetchDirection();\n+ return this.inner.getResultSetHoldability();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1792,18 +1770,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setFetchSize(final int a) throws SQLException {\n+ public final void setPoolable(final boolean a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setFetchSize(a);\n+ this.inner.setPoolable(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1811,18 +1789,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getFetchSize() throws SQLException {\n+ public final boolean isPoolable() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getFetchSize();\n+ return this.inner.isPoolable();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1830,18 +1808,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getResultSetConcurrency() throws SQLException {\n+ public final void closeOnCompletion() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getResultSetConcurrency();\n+ this.inner.closeOnCompletion();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1849,18 +1827,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getResultSetType() throws SQLException {\n+ public final boolean isCloseOnCompletion() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getResultSetType();\n+ return this.inner.isCloseOnCompletion();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1868,18 +1846,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void addBatch(final String a) throws SQLException {\n+ public final long getLargeUpdateCount() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.addBatch(a);\n+ return this.inner.getLargeUpdateCount();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1887,18 +1865,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void clearBatch() throws SQLException {\n+ public final void setLargeMaxRows(final long a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.clearBatch();\n+ this.inner.setLargeMaxRows(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1906,18 +1884,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int[] executeBatch() throws SQLException {\n+ public final long getLargeMaxRows() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeBatch();\n+ return this.inner.getLargeMaxRows();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1925,23 +1903,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final ResultSet getGeneratedKeys() throws SQLException {\n+ public final long[] executeLargeBatch() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- final ResultSet innerResultSet = this.inner.getGeneratedKeys();\n- if (innerResultSet == null) {\n- return null;\n- }\n- this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n- return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n+ return this.inner.executeLargeBatch();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1949,18 +1922,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final int getResultSetHoldability() throws SQLException {\n+ public final long executeLargeUpdate(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getResultSetHoldability();\n+ return this.inner.executeLargeUpdate(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1968,18 +1941,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setPoolable(final boolean a) throws SQLException {\n+ public final long executeLargeUpdate(final String a, final int[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setPoolable(a);\n+ return this.inner.executeLargeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1987,18 +1960,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean isPoolable() throws SQLException {\n+ public final long executeLargeUpdate(final String a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.isPoolable();\n+ return this.inner.executeLargeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2006,18 +1979,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void closeOnCompletion() throws SQLException {\n+ public final long executeLargeUpdate(final String a, final String[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.closeOnCompletion();\n+ return this.inner.executeLargeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2025,18 +1998,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean isCloseOnCompletion() throws SQLException {\n+ public final String enquoteLiteral(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.isCloseOnCompletion();\n+ return this.inner.enquoteLiteral(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2044,18 +2017,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long getLargeUpdateCount() throws SQLException {\n+ public final String enquoteIdentifier(final String a, final boolean b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getLargeUpdateCount();\n+ return this.inner.enquoteIdentifier(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2063,18 +2036,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final void setLargeMaxRows(final long a) throws SQLException {\n+ public final boolean isSimpleIdentifier(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setLargeMaxRows(a);\n+ return this.inner.isSimpleIdentifier(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2082,18 +2055,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long getLargeMaxRows() throws SQLException {\n+ public final String enquoteNCharLiteral(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getLargeMaxRows();\n+ return this.inner.enquoteNCharLiteral(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2101,18 +2074,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long[] executeLargeBatch() throws SQLException {\n+ public final boolean execute(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeBatch();\n+ return this.inner.execute(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2120,18 +2093,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long executeLargeUpdate(final String a, final String[] b) throws SQLException {\n+ public final boolean execute(final String a, final String[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate(a, b);\n+ return this.inner.execute(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2139,18 +2112,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long executeLargeUpdate(final String a, final int[] b) throws SQLException {\n+ public final boolean execute(final String a, final int[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate(a, b);\n+ return this.inner.execute(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2158,18 +2131,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long executeLargeUpdate(final String a, final int b) throws SQLException {\n+ public final boolean execute(final String a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate(a, b);\n+ return this.inner.execute(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2177,37 +2150,56 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final long executeLargeUpdate(final String a) throws SQLException {\n+ public final void close() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate(a);\n+ if (!this.isDetached()) {\n+ if (this.is_cached) {\n+ this.parentPooledConnection.checkinStatement((Statement)this.inner);\n+ }\n+ else {\n+ this.parentPooledConnection.markInactiveUncachedStatement((Statement)this.inner);\n+ try {\n+ this.inner.close();\n+ }\n+ catch (final Exception e) {\n+ if (NewProxyPreparedStatement.logger.isLoggable(MLevel.WARNING)) {\n+ NewProxyPreparedStatement.logger.log(MLevel.WARNING, \"Exception on close of inner statement.\", (Throwable)e);\n+ }\n+ final SQLException sqle = SqlUtils.toSQLException((Throwable)e);\n+ throw sqle;\n+ }\n+ }\n+ this.detach();\n+ this.inner = null;\n+ this.creatorProxy = null;\n+ }\n }\n catch (final NullPointerException exc) {\n- if (this.isDetached()) {\n- throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n+ if (!this.isDetached()) {\n+ throw exc;\n }\n- throw exc;\n }\n catch (final Exception exc2) {\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final String enquoteLiteral(final String a) throws SQLException {\n+ public final void cancel() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.enquoteLiteral(a);\n+ this.inner.cancel();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2215,18 +2207,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final String enquoteIdentifier(final String a, final boolean b) throws SQLException {\n+ public final boolean isClosed() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.enquoteIdentifier(a, b);\n+ return this.isDetached();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2234,18 +2226,21 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean isSimpleIdentifier(final String a) throws SQLException {\n+ public final Connection getConnection() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.isSimpleIdentifier(a);\n+ if (!this.isDetached()) {\n+ return (Connection)this.creatorProxy;\n+ }\n+ throw new SQLException(\"You cannot operate on a closed Statement!\");\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2253,18 +2248,23 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final String enquoteNCharLiteral(final String a) throws SQLException {\n+ public final ResultSet executeQuery(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.enquoteNCharLiteral(a);\n+ final ResultSet innerResultSet = this.inner.executeQuery(a);\n+ if (innerResultSet == null) {\n+ return null;\n+ }\n+ this.parentPooledConnection.markActiveResultSetForStatement((Statement)this.inner, innerResultSet);\n+ return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2272,18 +2272,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final Object unwrap(final Class a) throws SQLException {\n+ public final boolean isWrapperFor(final Class a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.unwrap((Class)a);\n+ return this.inner.isWrapperFor(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -2291,18 +2291,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean isWrapperFor(final Class a) throws SQLException {\n+ public final Object unwrap(final Class a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.isWrapperFor(a);\n+ return this.inner.unwrap((Class)a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n"}]}, {"source1": "com/mchange/v2/c3p0/impl/NewProxyResultSet.class", "source2": "com/mchange/v2/c3p0/impl/NewProxyResultSet.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -1,34 +1,34 @@\n \n package com.mchange.v2.c3p0.impl;\n \n import com.mchange.v2.log.MLog;\n-import java.sql.SQLWarning;\n import java.sql.ResultSetMetaData;\n import java.net.URL;\n import java.sql.Time;\n import java.util.Calendar;\n import java.util.Map;\n import java.sql.Connection;\n import java.sql.DatabaseMetaData;\n import java.sql.Statement;\n-import java.sql.SQLXML;\n-import java.sql.NClob;\n-import java.sql.RowId;\n import java.sql.Array;\n-import java.sql.Clob;\n-import java.sql.Blob;\n import java.sql.Ref;\n import java.sql.SQLType;\n-import java.io.Reader;\n import java.sql.Timestamp;\n import java.sql.Date;\n import java.math.BigDecimal;\n-import java.sql.SQLException;\n+import java.sql.SQLXML;\n+import java.sql.NClob;\n+import java.sql.RowId;\n+import java.sql.Clob;\n+import java.sql.Blob;\n import java.io.InputStream;\n+import java.io.Reader;\n+import java.sql.SQLException;\n+import java.sql.SQLWarning;\n import javax.sql.ConnectionEventListener;\n import com.mchange.v2.log.MLogger;\n import java.sql.ResultSet;\n \n public final class NewProxyResultSet implements ResultSet\n {\n protected ResultSet inner;\n@@ -41,20 +41,20 @@\n \n public NewProxyResultSet(final ResultSet inner) {\n this.cel = (ConnectionEventListener)new NewProxyResultSet.NewProxyResultSet$1(this);\n this.inner = inner;\n }\n \n @Override\n- public final InputStream getUnicodeStream(final int a) throws SQLException {\n+ public final SQLWarning getWarnings() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getUnicodeStream(a);\n+ return this.inner.getWarnings();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -63,20 +63,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final InputStream getUnicodeStream(final String a) throws SQLException {\n+ public final void clearWarnings() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getUnicodeStream(a);\n+ this.inner.clearWarnings();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -85,20 +85,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final String getCursorName() throws SQLException {\n+ public final void setFetchDirection(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getCursorName();\n+ this.inner.setFetchDirection(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -107,20 +107,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int findColumn(final String a) throws SQLException {\n+ public final int getFetchDirection() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.findColumn(a);\n+ return this.inner.getFetchDirection();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -129,20 +129,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean isBeforeFirst() throws SQLException {\n+ public final void setFetchSize(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.isBeforeFirst();\n+ this.inner.setFetchSize(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -151,20 +151,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean isAfterLast() throws SQLException {\n+ public final int getFetchSize() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.isAfterLast();\n+ return this.inner.getFetchSize();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -173,20 +173,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean isFirst() throws SQLException {\n+ public final int getHoldability() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.isFirst();\n+ return this.inner.getHoldability();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -195,20 +195,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean isLast() throws SQLException {\n+ public final Reader getCharacterStream(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.isLast();\n+ return this.inner.getCharacterStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -217,20 +217,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void beforeFirst() throws SQLException {\n+ public final Reader getCharacterStream(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.beforeFirst();\n+ return this.inner.getCharacterStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -239,20 +239,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void afterLast() throws SQLException {\n+ public final InputStream getAsciiStream(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.afterLast();\n+ return this.inner.getAsciiStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -261,20 +261,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getRow() throws SQLException {\n+ public final InputStream getAsciiStream(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getRow();\n+ return this.inner.getAsciiStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -283,20 +283,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getConcurrency() throws SQLException {\n+ public final InputStream getBinaryStream(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getConcurrency();\n+ return this.inner.getBinaryStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -305,20 +305,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean rowUpdated() throws SQLException {\n+ public final InputStream getBinaryStream(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.rowUpdated();\n+ return this.inner.getBinaryStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -327,20 +327,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean rowInserted() throws SQLException {\n+ public final boolean wasNull() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.rowInserted();\n+ return this.inner.wasNull();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -349,20 +349,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean rowDeleted() throws SQLException {\n+ public final Blob getBlob(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.rowDeleted();\n+ return this.inner.getBlob(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -371,20 +371,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNull(final String a) throws SQLException {\n+ public final Blob getBlob(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNull(a);\n+ return this.inner.getBlob(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -393,20 +393,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNull(final int a) throws SQLException {\n+ public final Clob getClob(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNull(a);\n+ return this.inner.getClob(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -415,20 +415,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBoolean(final String a, final boolean b) throws SQLException {\n+ public final Clob getClob(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBoolean(a, b);\n+ return this.inner.getClob(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -437,20 +437,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBoolean(final int a, final boolean b) throws SQLException {\n+ public final RowId getRowId(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBoolean(a, b);\n+ return this.inner.getRowId(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -459,20 +459,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateByte(final int a, final byte b) throws SQLException {\n+ public final RowId getRowId(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateByte(a, b);\n+ return this.inner.getRowId(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -481,20 +481,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateByte(final String a, final byte b) throws SQLException {\n+ public final NClob getNClob(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateByte(a, b);\n+ return this.inner.getNClob(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -503,20 +503,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateShort(final int a, final short b) throws SQLException {\n+ public final NClob getNClob(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateShort(a, b);\n+ return this.inner.getNClob(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -525,20 +525,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateShort(final String a, final short b) throws SQLException {\n+ public final SQLXML getSQLXML(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateShort(a, b);\n+ return this.inner.getSQLXML(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -547,20 +547,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateInt(final int a, final int b) throws SQLException {\n+ public final SQLXML getSQLXML(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateInt(a, b);\n+ return this.inner.getSQLXML(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -569,20 +569,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateInt(final String a, final int b) throws SQLException {\n+ public final String getNString(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateInt(a, b);\n+ return this.inner.getNString(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -591,20 +591,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateLong(final int a, final long b) throws SQLException {\n+ public final String getNString(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateLong(a, b);\n+ return this.inner.getNString(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -613,20 +613,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateLong(final String a, final long b) throws SQLException {\n+ public final Reader getNCharacterStream(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateLong(a, b);\n+ return this.inner.getNCharacterStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -635,20 +635,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateFloat(final int a, final float b) throws SQLException {\n+ public final Reader getNCharacterStream(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateFloat(a, b);\n+ return this.inner.getNCharacterStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -657,20 +657,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateFloat(final String a, final float b) throws SQLException {\n+ public final InputStream getUnicodeStream(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateFloat(a, b);\n+ return this.inner.getUnicodeStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -679,20 +679,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateDouble(final int a, final double b) throws SQLException {\n+ public final InputStream getUnicodeStream(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateDouble(a, b);\n+ return this.inner.getUnicodeStream(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -701,20 +701,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateDouble(final String a, final double b) throws SQLException {\n+ public final String getCursorName() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateDouble(a, b);\n+ return this.inner.getCursorName();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -723,20 +723,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBigDecimal(final int a, final BigDecimal b) throws SQLException {\n+ public final int findColumn(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBigDecimal(a, b);\n+ return this.inner.findColumn(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -745,20 +745,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBigDecimal(final String a, final BigDecimal b) throws SQLException {\n+ public final boolean isBeforeFirst() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBigDecimal(a, b);\n+ return this.inner.isBeforeFirst();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -767,20 +767,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateString(final int a, final String b) throws SQLException {\n+ public final boolean isAfterLast() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateString(a, b);\n+ return this.inner.isAfterLast();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -789,20 +789,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateString(final String a, final String b) throws SQLException {\n+ public final boolean isFirst() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateString(a, b);\n+ return this.inner.isFirst();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -811,20 +811,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateDate(final String a, final Date b) throws SQLException {\n+ public final boolean isLast() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateDate(a, b);\n+ return this.inner.isLast();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -833,20 +833,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateDate(final int a, final Date b) throws SQLException {\n+ public final void beforeFirst() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateDate(a, b);\n+ this.inner.beforeFirst();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -855,20 +855,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateTimestamp(final String a, final Timestamp b) throws SQLException {\n+ public final void afterLast() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateTimestamp(a, b);\n+ this.inner.afterLast();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -877,20 +877,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateTimestamp(final int a, final Timestamp b) throws SQLException {\n+ public final int getRow() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateTimestamp(a, b);\n+ return this.inner.getRow();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -899,20 +899,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateAsciiStream(final int a, final InputStream b, final long c) throws SQLException {\n+ public final int getConcurrency() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateAsciiStream(a, b, c);\n+ return this.inner.getConcurrency();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -921,20 +921,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateAsciiStream(final String a, final InputStream b) throws SQLException {\n+ public final boolean rowUpdated() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateAsciiStream(a, b);\n+ return this.inner.rowUpdated();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -943,20 +943,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateAsciiStream(final String a, final InputStream b, final int c) throws SQLException {\n+ public final boolean rowInserted() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateAsciiStream(a, b, c);\n+ return this.inner.rowInserted();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -965,20 +965,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateAsciiStream(final String a, final InputStream b, final long c) throws SQLException {\n+ public final boolean rowDeleted() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateAsciiStream(a, b, c);\n+ return this.inner.rowDeleted();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -987,20 +987,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateAsciiStream(final int a, final InputStream b, final int c) throws SQLException {\n+ public final void updateNull(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateAsciiStream(a, b, c);\n+ this.inner.updateNull(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1009,20 +1009,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateAsciiStream(final int a, final InputStream b) throws SQLException {\n+ public final void updateNull(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateAsciiStream(a, b);\n+ this.inner.updateNull(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1031,20 +1031,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBinaryStream(final int a, final InputStream b) throws SQLException {\n+ public final void updateBoolean(final int a, final boolean b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBinaryStream(a, b);\n+ this.inner.updateBoolean(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1053,20 +1053,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBinaryStream(final String a, final InputStream b) throws SQLException {\n+ public final void updateBoolean(final String a, final boolean b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBinaryStream(a, b);\n+ this.inner.updateBoolean(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1075,20 +1075,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBinaryStream(final int a, final InputStream b, final int c) throws SQLException {\n+ public final void updateByte(final int a, final byte b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBinaryStream(a, b, c);\n+ this.inner.updateByte(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1097,20 +1097,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBinaryStream(final int a, final InputStream b, final long c) throws SQLException {\n+ public final void updateByte(final String a, final byte b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBinaryStream(a, b, c);\n+ this.inner.updateByte(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1119,20 +1119,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBinaryStream(final String a, final InputStream b, final long c) throws SQLException {\n+ public final void updateShort(final int a, final short b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBinaryStream(a, b, c);\n+ this.inner.updateShort(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1141,20 +1141,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBinaryStream(final String a, final InputStream b, final int c) throws SQLException {\n+ public final void updateShort(final String a, final short b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBinaryStream(a, b, c);\n+ this.inner.updateShort(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1163,20 +1163,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateCharacterStream(final int a, final Reader b) throws SQLException {\n+ public final void updateInt(final String a, final int b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateCharacterStream(a, b);\n+ this.inner.updateInt(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1185,20 +1185,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateCharacterStream(final String a, final Reader b) throws SQLException {\n+ public final void updateInt(final int a, final int b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateCharacterStream(a, b);\n+ this.inner.updateInt(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1207,20 +1207,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateCharacterStream(final int a, final Reader b, final long c) throws SQLException {\n+ public final void updateLong(final String a, final long b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateCharacterStream(a, b, c);\n+ this.inner.updateLong(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1229,20 +1229,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateCharacterStream(final int a, final Reader b, final int c) throws SQLException {\n+ public final void updateLong(final int a, final long b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateCharacterStream(a, b, c);\n+ this.inner.updateLong(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1251,20 +1251,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateCharacterStream(final String a, final Reader b, final long c) throws SQLException {\n+ public final void updateFloat(final String a, final float b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateCharacterStream(a, b, c);\n+ this.inner.updateFloat(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1273,20 +1273,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateCharacterStream(final String a, final Reader b, final int c) throws SQLException {\n+ public final void updateFloat(final int a, final float b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateCharacterStream(a, b, c);\n+ this.inner.updateFloat(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1295,20 +1295,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateObject(final int a, final Object b) throws SQLException {\n+ public final void updateDouble(final int a, final double b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateObject(a, b);\n+ this.inner.updateDouble(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1317,20 +1317,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateObject(final String a, final Object b) throws SQLException {\n+ public final void updateDouble(final String a, final double b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateObject(a, b);\n+ this.inner.updateDouble(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1339,20 +1339,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateObject(final int a, final Object b, final int c) throws SQLException {\n+ public final void updateBigDecimal(final int a, final BigDecimal b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateObject(a, b, c);\n+ this.inner.updateBigDecimal(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1361,20 +1361,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateObject(final int a, final Object b, final SQLType c) throws SQLException {\n+ public final void updateBigDecimal(final String a, final BigDecimal b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateObject(a, b, c);\n+ this.inner.updateBigDecimal(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1383,20 +1383,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateObject(final String a, final Object b, final SQLType c, final int d) throws SQLException {\n+ public final void updateString(final String a, final String b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateObject(a, b, c, d);\n+ this.inner.updateString(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1405,20 +1405,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateObject(final String a, final Object b, final SQLType c) throws SQLException {\n+ public final void updateString(final int a, final String b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateObject(a, b, c);\n+ this.inner.updateString(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1427,20 +1427,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateObject(final String a, final Object b, final int c) throws SQLException {\n+ public final void updateDate(final String a, final Date b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateObject(a, b, c);\n+ this.inner.updateDate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1449,20 +1449,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateObject(final int a, final Object b, final SQLType c, final int d) throws SQLException {\n+ public final void updateDate(final int a, final Date b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateObject(a, b, c, d);\n+ this.inner.updateDate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1471,20 +1471,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void insertRow() throws SQLException {\n+ public final void updateTimestamp(final String a, final Timestamp b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.insertRow();\n+ this.inner.updateTimestamp(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1493,20 +1493,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateRow() throws SQLException {\n+ public final void updateTimestamp(final int a, final Timestamp b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateRow();\n+ this.inner.updateTimestamp(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1515,20 +1515,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void deleteRow() throws SQLException {\n+ public final void updateAsciiStream(final int a, final InputStream b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.deleteRow();\n+ this.inner.updateAsciiStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1537,20 +1537,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void refreshRow() throws SQLException {\n+ public final void updateAsciiStream(final String a, final InputStream b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.refreshRow();\n+ this.inner.updateAsciiStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1559,20 +1559,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void cancelRowUpdates() throws SQLException {\n+ public final void updateAsciiStream(final int a, final InputStream b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.cancelRowUpdates();\n+ this.inner.updateAsciiStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1581,20 +1581,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void moveToInsertRow() throws SQLException {\n+ public final void updateAsciiStream(final int a, final InputStream b, final int c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.moveToInsertRow();\n+ this.inner.updateAsciiStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1603,20 +1603,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void moveToCurrentRow() throws SQLException {\n+ public final void updateAsciiStream(final String a, final InputStream b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.moveToCurrentRow();\n+ this.inner.updateAsciiStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1625,20 +1625,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateRef(final int a, final Ref b) throws SQLException {\n+ public final void updateAsciiStream(final String a, final InputStream b, final int c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateRef(a, b);\n+ this.inner.updateAsciiStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1647,20 +1647,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateRef(final String a, final Ref b) throws SQLException {\n+ public final void updateBinaryStream(final int a, final InputStream b, final int c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateRef(a, b);\n+ this.inner.updateBinaryStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1669,20 +1669,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBlob(final int a, final InputStream b) throws SQLException {\n+ public final void updateBinaryStream(final int a, final InputStream b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBlob(a, b);\n+ this.inner.updateBinaryStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1691,20 +1691,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBlob(final String a, final Blob b) throws SQLException {\n+ public final void updateBinaryStream(final String a, final InputStream b, final int c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBlob(a, b);\n+ this.inner.updateBinaryStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1713,20 +1713,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBlob(final String a, final InputStream b, final long c) throws SQLException {\n+ public final void updateBinaryStream(final String a, final InputStream b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBlob(a, b, c);\n+ this.inner.updateBinaryStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1735,20 +1735,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBlob(final int a, final InputStream b, final long c) throws SQLException {\n+ public final void updateBinaryStream(final String a, final InputStream b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBlob(a, b, c);\n+ this.inner.updateBinaryStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1757,20 +1757,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBlob(final int a, final Blob b) throws SQLException {\n+ public final void updateBinaryStream(final int a, final InputStream b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBlob(a, b);\n+ this.inner.updateBinaryStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1779,20 +1779,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBlob(final String a, final InputStream b) throws SQLException {\n+ public final void updateCharacterStream(final int a, final Reader b, final int c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBlob(a, b);\n+ this.inner.updateCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1801,20 +1801,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateClob(final int a, final Reader b, final long c) throws SQLException {\n+ public final void updateCharacterStream(final String a, final Reader b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateClob(a, b, c);\n+ this.inner.updateCharacterStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1823,20 +1823,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateClob(final String a, final Reader b) throws SQLException {\n+ public final void updateCharacterStream(final String a, final Reader b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateClob(a, b);\n+ this.inner.updateCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1845,20 +1845,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateClob(final int a, final Reader b) throws SQLException {\n+ public final void updateCharacterStream(final int a, final Reader b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateClob(a, b);\n+ this.inner.updateCharacterStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1867,20 +1867,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateClob(final String a, final Reader b, final long c) throws SQLException {\n+ public final void updateCharacterStream(final int a, final Reader b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateClob(a, b, c);\n+ this.inner.updateCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1889,20 +1889,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateClob(final int a, final Clob b) throws SQLException {\n+ public final void updateCharacterStream(final String a, final Reader b, final int c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateClob(a, b);\n+ this.inner.updateCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1911,20 +1911,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateClob(final String a, final Clob b) throws SQLException {\n+ public final void updateObject(final String a, final Object b, final int c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateClob(a, b);\n+ this.inner.updateObject(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1933,20 +1933,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateArray(final String a, final Array b) throws SQLException {\n+ public final void updateObject(final String a, final Object b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateArray(a, b);\n+ this.inner.updateObject(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1955,20 +1955,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateArray(final int a, final Array b) throws SQLException {\n+ public final void updateObject(final int a, final Object b, final SQLType c, final int d) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateArray(a, b);\n+ this.inner.updateObject(a, b, c, d);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1977,20 +1977,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateRowId(final String a, final RowId b) throws SQLException {\n+ public final void updateObject(final String a, final Object b, final SQLType c, final int d) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateRowId(a, b);\n+ this.inner.updateObject(a, b, c, d);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -1999,20 +1999,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateRowId(final int a, final RowId b) throws SQLException {\n+ public final void updateObject(final int a, final Object b, final SQLType c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateRowId(a, b);\n+ this.inner.updateObject(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2021,20 +2021,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNString(final int a, final String b) throws SQLException {\n+ public final void updateObject(final int a, final Object b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNString(a, b);\n+ this.inner.updateObject(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2043,20 +2043,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNString(final String a, final String b) throws SQLException {\n+ public final void updateObject(final int a, final Object b, final int c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNString(a, b);\n+ this.inner.updateObject(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2065,20 +2065,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNClob(final String a, final Reader b) throws SQLException {\n+ public final void updateObject(final String a, final Object b, final SQLType c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNClob(a, b);\n+ this.inner.updateObject(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2087,20 +2087,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNClob(final int a, final Reader b) throws SQLException {\n+ public final void insertRow() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNClob(a, b);\n+ this.inner.insertRow();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2109,20 +2109,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNClob(final int a, final Reader b, final long c) throws SQLException {\n+ public final void updateRow() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNClob(a, b, c);\n+ this.inner.updateRow();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2131,20 +2131,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNClob(final String a, final NClob b) throws SQLException {\n+ public final void deleteRow() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNClob(a, b);\n+ this.inner.deleteRow();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2153,20 +2153,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNClob(final int a, final NClob b) throws SQLException {\n+ public final void refreshRow() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNClob(a, b);\n+ this.inner.refreshRow();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2175,20 +2175,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNClob(final String a, final Reader b, final long c) throws SQLException {\n+ public final void cancelRowUpdates() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNClob(a, b, c);\n+ this.inner.cancelRowUpdates();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2197,20 +2197,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateSQLXML(final String a, final SQLXML b) throws SQLException {\n+ public final void moveToInsertRow() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateSQLXML(a, b);\n+ this.inner.moveToInsertRow();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2219,20 +2219,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateSQLXML(final int a, final SQLXML b) throws SQLException {\n+ public final void moveToCurrentRow() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateSQLXML(a, b);\n+ this.inner.moveToCurrentRow();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2241,20 +2241,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNCharacterStream(final int a, final Reader b, final long c) throws SQLException {\n+ public final void updateRef(final int a, final Ref b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNCharacterStream(a, b, c);\n+ this.inner.updateRef(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2263,20 +2263,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNCharacterStream(final String a, final Reader b, final long c) throws SQLException {\n+ public final void updateRef(final String a, final Ref b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNCharacterStream(a, b, c);\n+ this.inner.updateRef(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2285,20 +2285,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNCharacterStream(final String a, final Reader b) throws SQLException {\n+ public final void updateBlob(final int a, final Blob b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNCharacterStream(a, b);\n+ this.inner.updateBlob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2307,20 +2307,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateNCharacterStream(final int a, final Reader b) throws SQLException {\n+ public final void updateBlob(final int a, final InputStream b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateNCharacterStream(a, b);\n+ this.inner.updateBlob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2329,20 +2329,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBytes(final int a, final byte[] b) throws SQLException {\n+ public final void updateBlob(final String a, final InputStream b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBytes(a, b);\n+ this.inner.updateBlob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2351,20 +2351,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateBytes(final String a, final byte[] b) throws SQLException {\n+ public final void updateBlob(final String a, final Blob b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateBytes(a, b);\n+ this.inner.updateBlob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2373,20 +2373,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean getBoolean(final String a) throws SQLException {\n+ public final void updateBlob(final int a, final InputStream b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getBoolean(a);\n+ this.inner.updateBlob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2395,20 +2395,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean getBoolean(final int a) throws SQLException {\n+ public final void updateBlob(final String a, final InputStream b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getBoolean(a);\n+ this.inner.updateBlob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2417,20 +2417,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final byte getByte(final int a) throws SQLException {\n+ public final void updateClob(final int a, final Reader b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getByte(a);\n+ this.inner.updateClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2439,20 +2439,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final byte getByte(final String a) throws SQLException {\n+ public final void updateClob(final String a, final Clob b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getByte(a);\n+ this.inner.updateClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2461,20 +2461,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final short getShort(final int a) throws SQLException {\n+ public final void updateClob(final String a, final Reader b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getShort(a);\n+ this.inner.updateClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2483,20 +2483,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final short getShort(final String a) throws SQLException {\n+ public final void updateClob(final int a, final Clob b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getShort(a);\n+ this.inner.updateClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2505,20 +2505,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getInt(final int a) throws SQLException {\n+ public final void updateClob(final int a, final Reader b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getInt(a);\n+ this.inner.updateClob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2527,20 +2527,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getInt(final String a) throws SQLException {\n+ public final void updateClob(final String a, final Reader b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getInt(a);\n+ this.inner.updateClob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2549,20 +2549,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final long getLong(final String a) throws SQLException {\n+ public final void updateArray(final int a, final Array b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getLong(a);\n+ this.inner.updateArray(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2571,20 +2571,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final long getLong(final int a) throws SQLException {\n+ public final void updateArray(final String a, final Array b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getLong(a);\n+ this.inner.updateArray(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2593,20 +2593,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final float getFloat(final int a) throws SQLException {\n+ public final void updateRowId(final String a, final RowId b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getFloat(a);\n+ this.inner.updateRowId(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2615,20 +2615,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final float getFloat(final String a) throws SQLException {\n+ public final void updateRowId(final int a, final RowId b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getFloat(a);\n+ this.inner.updateRowId(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2637,20 +2637,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final double getDouble(final String a) throws SQLException {\n+ public final void updateNString(final String a, final String b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getDouble(a);\n+ this.inner.updateNString(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2659,20 +2659,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final double getDouble(final int a) throws SQLException {\n+ public final void updateNString(final int a, final String b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getDouble(a);\n+ this.inner.updateNString(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2681,20 +2681,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final byte[] getBytes(final int a) throws SQLException {\n+ public final void updateNClob(final String a, final NClob b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getBytes(a);\n+ this.inner.updateNClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2703,20 +2703,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final byte[] getBytes(final String a) throws SQLException {\n+ public final void updateNClob(final int a, final Reader b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getBytes(a);\n+ this.inner.updateNClob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2725,20 +2725,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean next() throws SQLException {\n+ public final void updateNClob(final String a, final Reader b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.next();\n+ this.inner.updateNClob(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2747,20 +2747,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean last() throws SQLException {\n+ public final void updateNClob(final int a, final Reader b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.last();\n+ this.inner.updateNClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2769,20 +2769,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean first() throws SQLException {\n+ public final void updateNClob(final String a, final Reader b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.first();\n+ this.inner.updateNClob(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2791,57 +2791,42 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void close() throws SQLException {\n+ public final void updateNClob(final int a, final NClob b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- if (!this.isDetached()) {\n- if (this.creator instanceof Statement) {\n- this.parentPooledConnection.markInactiveResultSetForStatement((Statement)this.creator, this.inner);\n- }\n- else if (this.creator instanceof DatabaseMetaData) {\n- this.parentPooledConnection.markInactiveMetaDataResultSet(this.inner);\n- }\n- else {\n- if (!(this.creator instanceof Connection)) {\n- throw new InternalError(\"Must be Statement or DatabaseMetaData -- Bad Creator: \" + this.creator);\n- }\n- this.parentPooledConnection.markInactiveRawConnectionResultSet(this.inner);\n- }\n- this.detach();\n- this.inner.close();\n- this.inner = null;\n- }\n+ this.inner.updateNClob(a, b);\n }\n catch (final NullPointerException exc) {\n- if (!this.isDetached()) {\n- throw exc;\n+ if (this.isDetached()) {\n+ throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n+ throw exc;\n }\n catch (final Exception exc2) {\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getType() throws SQLException {\n+ public final void updateSQLXML(final String a, final SQLXML b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getType();\n+ this.inner.updateSQLXML(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2850,20 +2835,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object getObject(final String a, final Class b) throws SQLException {\n+ public final void updateSQLXML(final int a, final SQLXML b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getObject(a, (Class)b);\n+ this.inner.updateSQLXML(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2872,20 +2857,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object getObject(final int a, final Class b) throws SQLException {\n+ public final void updateNCharacterStream(final String a, final Reader b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getObject(a, (Class)b);\n+ this.inner.updateNCharacterStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2894,20 +2879,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object getObject(final String a) throws SQLException {\n+ public final void updateNCharacterStream(final String a, final Reader b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getObject(a);\n+ this.inner.updateNCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2916,20 +2901,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object getObject(final int a) throws SQLException {\n+ public final void updateNCharacterStream(final int a, final Reader b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getObject(a);\n+ this.inner.updateNCharacterStream(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2938,20 +2923,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object getObject(final int a, final Map b) throws SQLException {\n+ public final void updateNCharacterStream(final int a, final Reader b, final long c) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getObject(a, b);\n+ this.inner.updateNCharacterStream(a, b, c);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2960,20 +2945,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object getObject(final String a, final Map b) throws SQLException {\n+ public final void updateBytes(final int a, final byte[] b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getObject(a, b);\n+ this.inner.updateBytes(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -2982,20 +2967,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Ref getRef(final int a) throws SQLException {\n+ public final void updateBytes(final String a, final byte[] b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getRef(a);\n+ this.inner.updateBytes(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3004,20 +2989,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Ref getRef(final String a) throws SQLException {\n+ public final boolean getBoolean(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getRef(a);\n+ return this.inner.getBoolean(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3026,20 +3011,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean previous() throws SQLException {\n+ public final boolean getBoolean(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.previous();\n+ return this.inner.getBoolean(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3048,20 +3033,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Array getArray(final int a) throws SQLException {\n+ public final byte getByte(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getArray(a);\n+ return this.inner.getByte(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3070,20 +3055,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Array getArray(final String a) throws SQLException {\n+ public final byte getByte(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getArray(a);\n+ return this.inner.getByte(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3092,20 +3077,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean absolute(final int a) throws SQLException {\n+ public final short getShort(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.absolute(a);\n+ return this.inner.getShort(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3114,20 +3099,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Timestamp getTimestamp(final String a) throws SQLException {\n+ public final short getShort(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getTimestamp(a);\n+ return this.inner.getShort(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3136,20 +3121,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Timestamp getTimestamp(final int a) throws SQLException {\n+ public final int getInt(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getTimestamp(a);\n+ return this.inner.getInt(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3158,20 +3143,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Timestamp getTimestamp(final int a, final Calendar b) throws SQLException {\n+ public final int getInt(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getTimestamp(a, b);\n+ return this.inner.getInt(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3180,20 +3165,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Timestamp getTimestamp(final String a, final Calendar b) throws SQLException {\n+ public final long getLong(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getTimestamp(a, b);\n+ return this.inner.getLong(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3202,20 +3187,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final String getString(final int a) throws SQLException {\n+ public final long getLong(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getString(a);\n+ return this.inner.getLong(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3224,20 +3209,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final String getString(final String a) throws SQLException {\n+ public final float getFloat(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getString(a);\n+ return this.inner.getFloat(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3246,20 +3231,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final BigDecimal getBigDecimal(final int a) throws SQLException {\n+ public final float getFloat(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getBigDecimal(a);\n+ return this.inner.getFloat(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3268,20 +3253,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final BigDecimal getBigDecimal(final String a, final int b) throws SQLException {\n+ public final double getDouble(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getBigDecimal(a, b);\n+ return this.inner.getDouble(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3290,20 +3275,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final BigDecimal getBigDecimal(final String a) throws SQLException {\n+ public final double getDouble(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getBigDecimal(a);\n+ return this.inner.getDouble(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3312,20 +3297,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final BigDecimal getBigDecimal(final int a, final int b) throws SQLException {\n+ public final byte[] getBytes(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getBigDecimal(a, b);\n+ return this.inner.getBytes(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3334,20 +3319,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Time getTime(final String a, final Calendar b) throws SQLException {\n+ public final byte[] getBytes(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getTime(a, b);\n+ return this.inner.getBytes(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3356,20 +3341,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Time getTime(final String a) throws SQLException {\n+ public final boolean next() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getTime(a);\n+ return this.inner.next();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3378,20 +3363,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Time getTime(final int a, final Calendar b) throws SQLException {\n+ public final boolean last() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getTime(a, b);\n+ return this.inner.last();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3400,20 +3385,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Time getTime(final int a) throws SQLException {\n+ public final boolean first() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getTime(a);\n+ return this.inner.first();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3422,42 +3407,57 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateTime(final String a, final Time b) throws SQLException {\n+ public final void close() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateTime(a, b);\n+ if (!this.isDetached()) {\n+ if (this.creator instanceof Statement) {\n+ this.parentPooledConnection.markInactiveResultSetForStatement((Statement)this.creator, this.inner);\n+ }\n+ else if (this.creator instanceof DatabaseMetaData) {\n+ this.parentPooledConnection.markInactiveMetaDataResultSet(this.inner);\n+ }\n+ else {\n+ if (!(this.creator instanceof Connection)) {\n+ throw new InternalError(\"Must be Statement or DatabaseMetaData -- Bad Creator: \" + this.creator);\n+ }\n+ this.parentPooledConnection.markInactiveRawConnectionResultSet(this.inner);\n+ }\n+ this.detach();\n+ this.inner.close();\n+ this.inner = null;\n+ }\n }\n catch (final NullPointerException exc) {\n- if (this.isDetached()) {\n- throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n+ if (!this.isDetached()) {\n+ throw exc;\n }\n- throw exc;\n }\n catch (final Exception exc2) {\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void updateTime(final int a, final Time b) throws SQLException {\n+ public final int getType() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.updateTime(a, b);\n+ return this.inner.getType();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3466,20 +3466,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Date getDate(final String a, final Calendar b) throws SQLException {\n+ public final Object getObject(final String a, final Map b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getDate(a, b);\n+ return this.inner.getObject(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3488,20 +3488,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Date getDate(final String a) throws SQLException {\n+ public final Object getObject(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getDate(a);\n+ return this.inner.getObject(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3510,20 +3510,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Date getDate(final int a) throws SQLException {\n+ public final Object getObject(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getDate(a);\n+ return this.inner.getObject(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3532,20 +3532,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Date getDate(final int a, final Calendar b) throws SQLException {\n+ public final Object getObject(final int a, final Map b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getDate(a, b);\n+ return this.inner.getObject(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3554,20 +3554,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final URL getURL(final int a) throws SQLException {\n+ public final Object getObject(final String a, final Class b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getURL(a);\n+ return this.inner.getObject(a, (Class)b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3576,20 +3576,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final URL getURL(final String a) throws SQLException {\n+ public final Object getObject(final int a, final Class b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getURL(a);\n+ return this.inner.getObject(a, (Class)b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3598,20 +3598,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean relative(final int a) throws SQLException {\n+ public final Ref getRef(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.relative(a);\n+ return this.inner.getRef(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3620,26 +3620,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Statement getStatement() throws SQLException {\n+ public final Ref getRef(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- if (this.creator instanceof Statement) {\n- return (Statement)this.creatorProxy;\n- }\n- if (this.creator instanceof DatabaseMetaData) {\n- return null;\n- }\n- throw new InternalError(\"Must be Statement or DatabaseMetaData -- Bad Creator: \" + this.creator);\n+ return this.inner.getRef(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3648,20 +3642,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final ResultSetMetaData getMetaData() throws SQLException {\n+ public final boolean previous() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getMetaData();\n+ return this.inner.previous();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3670,20 +3664,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean isClosed() throws SQLException {\n+ public final Array getArray(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.isDetached();\n+ return this.inner.getArray(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3692,20 +3686,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final SQLWarning getWarnings() throws SQLException {\n+ public final Array getArray(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getWarnings();\n+ return this.inner.getArray(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3714,20 +3708,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void clearWarnings() throws SQLException {\n+ public final boolean absolute(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.clearWarnings();\n+ return this.inner.absolute(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3736,20 +3730,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setFetchDirection(final int a) throws SQLException {\n+ public final Timestamp getTimestamp(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.setFetchDirection(a);\n+ return this.inner.getTimestamp(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3758,20 +3752,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getFetchDirection() throws SQLException {\n+ public final Timestamp getTimestamp(final String a, final Calendar b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getFetchDirection();\n+ return this.inner.getTimestamp(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3780,20 +3774,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setFetchSize(final int a) throws SQLException {\n+ public final Timestamp getTimestamp(final int a, final Calendar b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- this.inner.setFetchSize(a);\n+ return this.inner.getTimestamp(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3802,20 +3796,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getFetchSize() throws SQLException {\n+ public final Timestamp getTimestamp(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getFetchSize();\n+ return this.inner.getTimestamp(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3824,20 +3818,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getHoldability() throws SQLException {\n+ public final String getString(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getHoldability();\n+ return this.inner.getString(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3846,20 +3840,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean wasNull() throws SQLException {\n+ public final String getString(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.wasNull();\n+ return this.inner.getString(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3868,20 +3862,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Blob getBlob(final int a) throws SQLException {\n+ public final BigDecimal getBigDecimal(final int a, final int b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getBlob(a);\n+ return this.inner.getBigDecimal(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3890,20 +3884,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Blob getBlob(final String a) throws SQLException {\n+ public final BigDecimal getBigDecimal(final String a, final int b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getBlob(a);\n+ return this.inner.getBigDecimal(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3912,20 +3906,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Clob getClob(final int a) throws SQLException {\n+ public final BigDecimal getBigDecimal(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getClob(a);\n+ return this.inner.getBigDecimal(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3934,20 +3928,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Clob getClob(final String a) throws SQLException {\n+ public final BigDecimal getBigDecimal(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getClob(a);\n+ return this.inner.getBigDecimal(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3956,20 +3950,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final RowId getRowId(final int a) throws SQLException {\n+ public final Time getTime(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getRowId(a);\n+ return this.inner.getTime(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -3978,20 +3972,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final RowId getRowId(final String a) throws SQLException {\n+ public final Time getTime(final int a, final Calendar b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getRowId(a);\n+ return this.inner.getTime(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4000,20 +3994,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final NClob getNClob(final String a) throws SQLException {\n+ public final Time getTime(final String a, final Calendar b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getNClob(a);\n+ return this.inner.getTime(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4022,20 +4016,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final NClob getNClob(final int a) throws SQLException {\n+ public final Time getTime(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getNClob(a);\n+ return this.inner.getTime(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4044,20 +4038,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final SQLXML getSQLXML(final String a) throws SQLException {\n+ public final void updateTime(final int a, final Time b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getSQLXML(a);\n+ this.inner.updateTime(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4066,20 +4060,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final SQLXML getSQLXML(final int a) throws SQLException {\n+ public final void updateTime(final String a, final Time b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getSQLXML(a);\n+ this.inner.updateTime(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4088,20 +4082,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final String getNString(final int a) throws SQLException {\n+ public final Date getDate(final int a, final Calendar b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getNString(a);\n+ return this.inner.getDate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4110,20 +4104,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final String getNString(final String a) throws SQLException {\n+ public final Date getDate(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getNString(a);\n+ return this.inner.getDate(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4132,20 +4126,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Reader getNCharacterStream(final int a) throws SQLException {\n+ public final Date getDate(final String a, final Calendar b) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getNCharacterStream(a);\n+ return this.inner.getDate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4154,20 +4148,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Reader getNCharacterStream(final String a) throws SQLException {\n+ public final Date getDate(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getNCharacterStream(a);\n+ return this.inner.getDate(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4176,20 +4170,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Reader getCharacterStream(final String a) throws SQLException {\n+ public final URL getURL(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getCharacterStream(a);\n+ return this.inner.getURL(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4198,20 +4192,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Reader getCharacterStream(final int a) throws SQLException {\n+ public final URL getURL(final String a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getCharacterStream(a);\n+ return this.inner.getURL(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4220,20 +4214,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final InputStream getAsciiStream(final int a) throws SQLException {\n+ public final boolean relative(final int a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getAsciiStream(a);\n+ return this.inner.relative(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4242,20 +4236,26 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final InputStream getAsciiStream(final String a) throws SQLException {\n+ public final Statement getStatement() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getAsciiStream(a);\n+ if (this.creator instanceof Statement) {\n+ return (Statement)this.creatorProxy;\n+ }\n+ if (this.creator instanceof DatabaseMetaData) {\n+ return null;\n+ }\n+ throw new InternalError(\"Must be Statement or DatabaseMetaData -- Bad Creator: \" + this.creator);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4264,20 +4264,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final InputStream getBinaryStream(final int a) throws SQLException {\n+ public final ResultSetMetaData getMetaData() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getBinaryStream(a);\n+ return this.inner.getMetaData();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4286,20 +4286,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final InputStream getBinaryStream(final String a) throws SQLException {\n+ public final boolean isClosed() throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.getBinaryStream(a);\n+ return this.isDetached();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4308,20 +4308,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Object unwrap(final Class a) throws SQLException {\n+ public final boolean isWrapperFor(final Class a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.unwrap((Class)a);\n+ return this.inner.isWrapperFor(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n@@ -4330,20 +4330,20 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean isWrapperFor(final Class a) throws SQLException {\n+ public final Object unwrap(final Class a) throws SQLException {\n try {\n if (this.proxyConn != null) {\n this.proxyConn.maybeDirtyTransaction();\n }\n- return this.inner.isWrapperFor(a);\n+ return this.inner.unwrap((Class)a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed ResultSet!!!\", exc);\n }\n throw exc;\n }\n"}]}, {"source1": "com/mchange/v2/c3p0/impl/NewProxyStatement.class", "source2": "com/mchange/v2/c3p0/impl/NewProxyStatement.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -1,18 +1,18 @@\n \n package com.mchange.v2.c3p0.impl;\n \n import com.mchange.v2.log.MLog;\n import java.lang.reflect.InvocationTargetException;\n import java.lang.reflect.Method;\n-import java.sql.SQLWarning;\n-import java.sql.ResultSet;\n import java.sql.Connection;\n import com.mchange.v2.sql.SqlUtils;\n import com.mchange.v2.log.MLevel;\n+import java.sql.ResultSet;\n+import java.sql.SQLWarning;\n import java.sql.SQLException;\n import javax.sql.ConnectionEventListener;\n import com.mchange.v2.log.MLogger;\n import com.mchange.v2.c3p0.C3P0ProxyStatement;\n import java.sql.Statement;\n \n public final class NewProxyStatement implements Statement, C3P0ProxyStatement\n@@ -26,18 +26,18 @@\n \n public NewProxyStatement(final Statement inner) {\n this.cel = (ConnectionEventListener)new NewProxyStatement.NewProxyStatement$1(this);\n this.inner = inner;\n }\n \n @Override\n- public final boolean execute(final String a, final String[] b) throws SQLException {\n+ public final int executeUpdate(final String a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute(a, b);\n+ return this.inner.executeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -46,18 +46,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean execute(final String a, final int b) throws SQLException {\n+ public final int executeUpdate(final String a, final String[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute(a, b);\n+ return this.inner.executeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -66,18 +66,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean execute(final String a) throws SQLException {\n+ public final int executeUpdate(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute(a);\n+ return this.inner.executeUpdate(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -86,18 +86,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean execute(final String a, final int[] b) throws SQLException {\n+ public final int executeUpdate(final String a, final int[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.execute(a, b);\n+ return this.inner.executeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -106,57 +106,38 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void close() throws SQLException {\n+ public final int getMaxFieldSize() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- if (!this.isDetached()) {\n- if (this.is_cached) {\n- this.parentPooledConnection.checkinStatement(this.inner);\n- }\n- else {\n- this.parentPooledConnection.markInactiveUncachedStatement(this.inner);\n- try {\n- this.inner.close();\n- }\n- catch (final Exception e) {\n- if (NewProxyStatement.logger.isLoggable(MLevel.WARNING)) {\n- NewProxyStatement.logger.log(MLevel.WARNING, \"Exception on close of inner statement.\", (Throwable)e);\n- }\n- final SQLException sqle = SqlUtils.toSQLException((Throwable)e);\n- throw sqle;\n- }\n- }\n- this.detach();\n- this.inner = null;\n- this.creatorProxy = null;\n- }\n+ return this.inner.getMaxFieldSize();\n }\n catch (final NullPointerException exc) {\n- if (!this.isDetached()) {\n- throw exc;\n+ if (this.isDetached()) {\n+ throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n+ throw exc;\n }\n catch (final Exception exc2) {\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void cancel() throws SQLException {\n+ public final void setMaxFieldSize(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.cancel();\n+ this.inner.setMaxFieldSize(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -165,18 +146,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean isClosed() throws SQLException {\n+ public final int getMaxRows() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.isDetached();\n+ return this.inner.getMaxRows();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -185,21 +166,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final Connection getConnection() throws SQLException {\n+ public final void setMaxRows(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- if (!this.isDetached()) {\n- return (Connection)this.creatorProxy;\n- }\n- throw new SQLException(\"You cannot operate on a closed Statement!\");\n+ this.inner.setMaxRows(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -208,23 +186,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final ResultSet executeQuery(final String a) throws SQLException {\n+ public final void setEscapeProcessing(final boolean a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- final ResultSet innerResultSet = this.inner.executeQuery(a);\n- if (innerResultSet == null) {\n- return null;\n- }\n- this.parentPooledConnection.markActiveResultSetForStatement(this.inner, innerResultSet);\n- return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n+ this.inner.setEscapeProcessing(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -233,18 +206,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int executeUpdate(final String a, final String[] b) throws SQLException {\n+ public final int getQueryTimeout() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate(a, b);\n+ return this.inner.getQueryTimeout();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -253,18 +226,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int executeUpdate(final String a) throws SQLException {\n+ public final void setQueryTimeout(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate(a);\n+ this.inner.setQueryTimeout(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -273,18 +246,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int executeUpdate(final String a, final int b) throws SQLException {\n+ public final SQLWarning getWarnings() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate(a, b);\n+ return this.inner.getWarnings();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -293,18 +266,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int executeUpdate(final String a, final int[] b) throws SQLException {\n+ public final void clearWarnings() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeUpdate(a, b);\n+ this.inner.clearWarnings();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -313,18 +286,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getMaxFieldSize() throws SQLException {\n+ public final void setCursorName(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMaxFieldSize();\n+ this.inner.setCursorName(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -333,18 +306,23 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setMaxFieldSize(final int a) throws SQLException {\n+ public final ResultSet getResultSet() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setMaxFieldSize(a);\n+ final ResultSet innerResultSet = this.inner.getResultSet();\n+ if (innerResultSet == null) {\n+ return null;\n+ }\n+ this.parentPooledConnection.markActiveResultSetForStatement(this.inner, innerResultSet);\n+ return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -353,18 +331,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getMaxRows() throws SQLException {\n+ public final int getUpdateCount() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMaxRows();\n+ return this.inner.getUpdateCount();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -373,18 +351,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setMaxRows(final int a) throws SQLException {\n+ public final boolean getMoreResults() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setMaxRows(a);\n+ return this.inner.getMoreResults();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -393,18 +371,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setEscapeProcessing(final boolean a) throws SQLException {\n+ public final boolean getMoreResults(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setEscapeProcessing(a);\n+ return this.inner.getMoreResults(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -413,18 +391,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getQueryTimeout() throws SQLException {\n+ public final void setFetchDirection(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getQueryTimeout();\n+ this.inner.setFetchDirection(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -433,18 +411,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setQueryTimeout(final int a) throws SQLException {\n+ public final int getFetchDirection() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setQueryTimeout(a);\n+ return this.inner.getFetchDirection();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -453,18 +431,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final SQLWarning getWarnings() throws SQLException {\n+ public final void setFetchSize(final int a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getWarnings();\n+ this.inner.setFetchSize(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -473,18 +451,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void clearWarnings() throws SQLException {\n+ public final int getFetchSize() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.clearWarnings();\n+ return this.inner.getFetchSize();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -493,18 +471,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setCursorName(final String a) throws SQLException {\n+ public final int getResultSetConcurrency() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setCursorName(a);\n+ return this.inner.getResultSetConcurrency();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -513,23 +491,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final ResultSet getResultSet() throws SQLException {\n+ public final int getResultSetType() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- final ResultSet innerResultSet = this.inner.getResultSet();\n- if (innerResultSet == null) {\n- return null;\n- }\n- this.parentPooledConnection.markActiveResultSetForStatement(this.inner, innerResultSet);\n- return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n+ return this.inner.getResultSetType();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -538,18 +511,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getUpdateCount() throws SQLException {\n+ public final void addBatch(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getUpdateCount();\n+ this.inner.addBatch(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -558,18 +531,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean getMoreResults() throws SQLException {\n+ public final void clearBatch() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMoreResults();\n+ this.inner.clearBatch();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -578,18 +551,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean getMoreResults(final int a) throws SQLException {\n+ public final int[] executeBatch() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getMoreResults(a);\n+ return this.inner.executeBatch();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -598,18 +571,23 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setFetchDirection(final int a) throws SQLException {\n+ public final ResultSet getGeneratedKeys() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setFetchDirection(a);\n+ final ResultSet innerResultSet = this.inner.getGeneratedKeys();\n+ if (innerResultSet == null) {\n+ return null;\n+ }\n+ this.parentPooledConnection.markActiveResultSetForStatement(this.inner, innerResultSet);\n+ return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -618,18 +596,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getFetchDirection() throws SQLException {\n+ public final int getResultSetHoldability() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getFetchDirection();\n+ return this.inner.getResultSetHoldability();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -638,18 +616,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setFetchSize(final int a) throws SQLException {\n+ public final void setPoolable(final boolean a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setFetchSize(a);\n+ this.inner.setPoolable(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -658,18 +636,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getFetchSize() throws SQLException {\n+ public final boolean isPoolable() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getFetchSize();\n+ return this.inner.isPoolable();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -678,18 +656,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getResultSetConcurrency() throws SQLException {\n+ public final void closeOnCompletion() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getResultSetConcurrency();\n+ this.inner.closeOnCompletion();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -698,18 +676,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getResultSetType() throws SQLException {\n+ public final boolean isCloseOnCompletion() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getResultSetType();\n+ return this.inner.isCloseOnCompletion();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -718,18 +696,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void addBatch(final String a) throws SQLException {\n+ public final long getLargeUpdateCount() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.addBatch(a);\n+ return this.inner.getLargeUpdateCount();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -738,18 +716,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void clearBatch() throws SQLException {\n+ public final void setLargeMaxRows(final long a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.clearBatch();\n+ this.inner.setLargeMaxRows(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -758,18 +736,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int[] executeBatch() throws SQLException {\n+ public final long getLargeMaxRows() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeBatch();\n+ return this.inner.getLargeMaxRows();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -778,23 +756,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final ResultSet getGeneratedKeys() throws SQLException {\n+ public final long[] executeLargeBatch() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- final ResultSet innerResultSet = this.inner.getGeneratedKeys();\n- if (innerResultSet == null) {\n- return null;\n- }\n- this.parentPooledConnection.markActiveResultSetForStatement(this.inner, innerResultSet);\n- return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n+ return this.inner.executeLargeBatch();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -803,18 +776,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final int getResultSetHoldability() throws SQLException {\n+ public final long executeLargeUpdate(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getResultSetHoldability();\n+ return this.inner.executeLargeUpdate(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -823,18 +796,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setPoolable(final boolean a) throws SQLException {\n+ public final long executeLargeUpdate(final String a, final int[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setPoolable(a);\n+ return this.inner.executeLargeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -843,18 +816,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean isPoolable() throws SQLException {\n+ public final long executeLargeUpdate(final String a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.isPoolable();\n+ return this.inner.executeLargeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -863,18 +836,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void closeOnCompletion() throws SQLException {\n+ public final long executeLargeUpdate(final String a, final String[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.closeOnCompletion();\n+ return this.inner.executeLargeUpdate(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -883,18 +856,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean isCloseOnCompletion() throws SQLException {\n+ public final String enquoteLiteral(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.isCloseOnCompletion();\n+ return this.inner.enquoteLiteral(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -903,18 +876,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final long getLargeUpdateCount() throws SQLException {\n+ public final String enquoteIdentifier(final String a, final boolean b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getLargeUpdateCount();\n+ return this.inner.enquoteIdentifier(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -923,18 +896,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final void setLargeMaxRows(final long a) throws SQLException {\n+ public final boolean isSimpleIdentifier(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- this.inner.setLargeMaxRows(a);\n+ return this.inner.isSimpleIdentifier(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -943,18 +916,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final long getLargeMaxRows() throws SQLException {\n+ public final String enquoteNCharLiteral(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.getLargeMaxRows();\n+ return this.inner.enquoteNCharLiteral(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -963,18 +936,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final long[] executeLargeBatch() throws SQLException {\n+ public final boolean execute(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeBatch();\n+ return this.inner.execute(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -983,18 +956,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final long executeLargeUpdate(final String a, final String[] b) throws SQLException {\n+ public final boolean execute(final String a, final String[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate(a, b);\n+ return this.inner.execute(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1003,18 +976,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final long executeLargeUpdate(final String a, final int[] b) throws SQLException {\n+ public final boolean execute(final String a, final int[] b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate(a, b);\n+ return this.inner.execute(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1023,18 +996,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final long executeLargeUpdate(final String a, final int b) throws SQLException {\n+ public final boolean execute(final String a, final int b) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate(a, b);\n+ return this.inner.execute(a, b);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1043,38 +1016,57 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final long executeLargeUpdate(final String a) throws SQLException {\n+ public final void close() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.executeLargeUpdate(a);\n+ if (!this.isDetached()) {\n+ if (this.is_cached) {\n+ this.parentPooledConnection.checkinStatement(this.inner);\n+ }\n+ else {\n+ this.parentPooledConnection.markInactiveUncachedStatement(this.inner);\n+ try {\n+ this.inner.close();\n+ }\n+ catch (final Exception e) {\n+ if (NewProxyStatement.logger.isLoggable(MLevel.WARNING)) {\n+ NewProxyStatement.logger.log(MLevel.WARNING, \"Exception on close of inner statement.\", (Throwable)e);\n+ }\n+ final SQLException sqle = SqlUtils.toSQLException((Throwable)e);\n+ throw sqle;\n+ }\n+ }\n+ this.detach();\n+ this.inner = null;\n+ this.creatorProxy = null;\n+ }\n }\n catch (final NullPointerException exc) {\n- if (this.isDetached()) {\n- throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n+ if (!this.isDetached()) {\n+ throw exc;\n }\n- throw exc;\n }\n catch (final Exception exc2) {\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final String enquoteLiteral(final String a) throws SQLException {\n+ public final void cancel() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.enquoteLiteral(a);\n+ this.inner.cancel();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1083,18 +1075,18 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final String enquoteIdentifier(final String a, final boolean b) throws SQLException {\n+ public final boolean isClosed() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.enquoteIdentifier(a, b);\n+ return this.isDetached();\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1103,18 +1095,21 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final boolean isSimpleIdentifier(final String a) throws SQLException {\n+ public final Connection getConnection() throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.isSimpleIdentifier(a);\n+ if (!this.isDetached()) {\n+ return (Connection)this.creatorProxy;\n+ }\n+ throw new SQLException(\"You cannot operate on a closed Statement!\");\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1123,18 +1118,23 @@\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n @Override\n- public final String enquoteNCharLiteral(final String a) throws SQLException {\n+ public final ResultSet executeQuery(final String a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.enquoteNCharLiteral(a);\n+ final ResultSet innerResultSet = this.inner.executeQuery(a);\n+ if (innerResultSet == null) {\n+ return null;\n+ }\n+ this.parentPooledConnection.markActiveResultSetForStatement(this.inner, innerResultSet);\n+ return (ResultSet)new NewProxyResultSet(innerResultSet, this.parentPooledConnection, (Object)this.inner, (Object)this);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1142,18 +1142,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final Object unwrap(final Class a) throws SQLException {\n+ public final boolean isWrapperFor(final Class a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.unwrap((Class)a);\n+ return this.inner.isWrapperFor(a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n@@ -1161,18 +1161,18 @@\n if (!this.isDetached()) {\n throw new RuntimeException(exc2);\n }\n throw new RuntimeException(exc2);\n }\n }\n \n- public final boolean isWrapperFor(final Class a) throws SQLException {\n+ public final Object unwrap(final Class a) throws SQLException {\n try {\n this.maybeDirtyTransaction();\n- return this.inner.isWrapperFor(a);\n+ return this.inner.unwrap((Class)a);\n }\n catch (final NullPointerException exc) {\n if (this.isDetached()) {\n throw new IllegalStateException(\"You can't operate on a closed Statement!!!\", exc);\n }\n throw exc;\n }\n"}]}]}]}]}]}]}