/*
 * This class generated by com.mchange.v2.c3p0.codegen.JdbcProxyGenerator$NewProxyMetaDataGenerator
 * Sat Mar 23 23:00:50 PDT 2019
 * DO NOT HAND EDIT!!!!
 */
package com.mchange.v2.c3p0.impl;

import java.lang.Class;
import java.lang.Object;
import java.lang.String;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.RowIdLifetime;
import java.sql.SQLException;
import java.sql.*;
import javax.sql.*;
import com.mchange.v2.log.*;
import java.lang.reflect.Method;
import com.mchange.v2.sql.SqlUtils;

This class was generated by com.mchange.v2.c3p0.codegen.JdbcProxyGenerator$NewProxyMetaDataGenerator.
/** * This class was generated by com.mchange.v2.c3p0.codegen.JdbcProxyGenerator$NewProxyMetaDataGenerator. */
public final class NewProxyDatabaseMetaData implements DatabaseMetaData { protected DatabaseMetaData inner; private void __setInner( DatabaseMetaData inner ) { this.inner = inner; } NewProxyDatabaseMetaData(DatabaseMetaData inner) { __setInner( inner ); } public final String getURL() throws SQLException { try { return inner.getURL(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getAttributes(String a, String b, String c, String d) throws SQLException { try { ResultSet innerResultSet = inner.getAttributes(a, b, c, d); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean isReadOnly() throws SQLException { try { return inner.isReadOnly(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final Connection getConnection() throws SQLException { try { return this.proxyCon; } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final long getMaxLogicalLobSize() throws SQLException { try { return inner.getMaxLogicalLobSize(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsRefCursors() throws SQLException { try { return inner.supportsRefCursors(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getResultSetHoldability() throws SQLException { try { return inner.getResultSetHoldability(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean allProceduresAreCallable() throws SQLException { try { return inner.allProceduresAreCallable(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean allTablesAreSelectable() throws SQLException { try { return inner.allTablesAreSelectable(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getUserName() throws SQLException { try { return inner.getUserName(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean nullsAreSortedHigh() throws SQLException { try { return inner.nullsAreSortedHigh(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean nullsAreSortedLow() throws SQLException { try { return inner.nullsAreSortedLow(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean nullsAreSortedAtStart() throws SQLException { try { return inner.nullsAreSortedAtStart(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean nullsAreSortedAtEnd() throws SQLException { try { return inner.nullsAreSortedAtEnd(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getDatabaseProductName() throws SQLException { try { return inner.getDatabaseProductName(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getDatabaseProductVersion() throws SQLException { try { return inner.getDatabaseProductVersion(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getDriverName() throws SQLException { try { return inner.getDriverName(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getDriverVersion() throws SQLException { try { return inner.getDriverVersion(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getDriverMajorVersion() { return inner.getDriverMajorVersion(); } public final int getDriverMinorVersion() { return inner.getDriverMinorVersion(); } public final boolean usesLocalFiles() throws SQLException { try { return inner.usesLocalFiles(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean usesLocalFilePerTable() throws SQLException { try { return inner.usesLocalFilePerTable(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsMixedCaseIdentifiers() throws SQLException { try { return inner.supportsMixedCaseIdentifiers(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean storesUpperCaseIdentifiers() throws SQLException { try { return inner.storesUpperCaseIdentifiers(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean storesLowerCaseIdentifiers() throws SQLException { try { return inner.storesLowerCaseIdentifiers(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean storesMixedCaseIdentifiers() throws SQLException { try { return inner.storesMixedCaseIdentifiers(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsMixedCaseQuotedIdentifiers() throws SQLException { try { return inner.supportsMixedCaseQuotedIdentifiers(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean storesUpperCaseQuotedIdentifiers() throws SQLException { try { return inner.storesUpperCaseQuotedIdentifiers(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean storesLowerCaseQuotedIdentifiers() throws SQLException { try { return inner.storesLowerCaseQuotedIdentifiers(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean storesMixedCaseQuotedIdentifiers() throws SQLException { try { return inner.storesMixedCaseQuotedIdentifiers(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getIdentifierQuoteString() throws SQLException { try { return inner.getIdentifierQuoteString(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getSQLKeywords() throws SQLException { try { return inner.getSQLKeywords(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getNumericFunctions() throws SQLException { try { return inner.getNumericFunctions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getStringFunctions() throws SQLException { try { return inner.getStringFunctions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getSystemFunctions() throws SQLException { try { return inner.getSystemFunctions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getTimeDateFunctions() throws SQLException { try { return inner.getTimeDateFunctions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getSearchStringEscape() throws SQLException { try { return inner.getSearchStringEscape(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getExtraNameCharacters() throws SQLException { try { return inner.getExtraNameCharacters(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsAlterTableWithAddColumn() throws SQLException { try { return inner.supportsAlterTableWithAddColumn(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsAlterTableWithDropColumn() throws SQLException { try { return inner.supportsAlterTableWithDropColumn(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsColumnAliasing() throws SQLException { try { return inner.supportsColumnAliasing(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean nullPlusNonNullIsNull() throws SQLException { try { return inner.nullPlusNonNullIsNull(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsConvert(int a, int b) throws SQLException { try { return inner.supportsConvert(a, b); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsConvert() throws SQLException { try { return inner.supportsConvert(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsTableCorrelationNames() throws SQLException { try { return inner.supportsTableCorrelationNames(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsDifferentTableCorrelationNames() throws SQLException { try { return inner.supportsDifferentTableCorrelationNames(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsExpressionsInOrderBy() throws SQLException { try { return inner.supportsExpressionsInOrderBy(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsOrderByUnrelated() throws SQLException { try { return inner.supportsOrderByUnrelated(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsGroupBy() throws SQLException { try { return inner.supportsGroupBy(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsGroupByUnrelated() throws SQLException { try { return inner.supportsGroupByUnrelated(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsGroupByBeyondSelect() throws SQLException { try { return inner.supportsGroupByBeyondSelect(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsLikeEscapeClause() throws SQLException { try { return inner.supportsLikeEscapeClause(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsMultipleResultSets() throws SQLException { try { return inner.supportsMultipleResultSets(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsMultipleTransactions() throws SQLException { try { return inner.supportsMultipleTransactions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsNonNullableColumns() throws SQLException { try { return inner.supportsNonNullableColumns(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsMinimumSQLGrammar() throws SQLException { try { return inner.supportsMinimumSQLGrammar(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsCoreSQLGrammar() throws SQLException { try { return inner.supportsCoreSQLGrammar(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsExtendedSQLGrammar() throws SQLException { try { return inner.supportsExtendedSQLGrammar(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsANSI92EntryLevelSQL() throws SQLException { try { return inner.supportsANSI92EntryLevelSQL(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsANSI92IntermediateSQL() throws SQLException { try { return inner.supportsANSI92IntermediateSQL(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsANSI92FullSQL() throws SQLException { try { return inner.supportsANSI92FullSQL(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsIntegrityEnhancementFacility() throws SQLException { try { return inner.supportsIntegrityEnhancementFacility(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsOuterJoins() throws SQLException { try { return inner.supportsOuterJoins(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsFullOuterJoins() throws SQLException { try { return inner.supportsFullOuterJoins(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsLimitedOuterJoins() throws SQLException { try { return inner.supportsLimitedOuterJoins(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getSchemaTerm() throws SQLException { try { return inner.getSchemaTerm(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getProcedureTerm() throws SQLException { try { return inner.getProcedureTerm(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getCatalogTerm() throws SQLException { try { return inner.getCatalogTerm(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean isCatalogAtStart() throws SQLException { try { return inner.isCatalogAtStart(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final String getCatalogSeparator() throws SQLException { try { return inner.getCatalogSeparator(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsSchemasInDataManipulation() throws SQLException { try { return inner.supportsSchemasInDataManipulation(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsSchemasInProcedureCalls() throws SQLException { try { return inner.supportsSchemasInProcedureCalls(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsSchemasInTableDefinitions() throws SQLException { try { return inner.supportsSchemasInTableDefinitions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsSchemasInIndexDefinitions() throws SQLException { try { return inner.supportsSchemasInIndexDefinitions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsSchemasInPrivilegeDefinitions() throws SQLException { try { return inner.supportsSchemasInPrivilegeDefinitions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsCatalogsInDataManipulation() throws SQLException { try { return inner.supportsCatalogsInDataManipulation(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsCatalogsInProcedureCalls() throws SQLException { try { return inner.supportsCatalogsInProcedureCalls(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsCatalogsInTableDefinitions() throws SQLException { try { return inner.supportsCatalogsInTableDefinitions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsCatalogsInIndexDefinitions() throws SQLException { try { return inner.supportsCatalogsInIndexDefinitions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException { try { return inner.supportsCatalogsInPrivilegeDefinitions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsPositionedDelete() throws SQLException { try { return inner.supportsPositionedDelete(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsPositionedUpdate() throws SQLException { try { return inner.supportsPositionedUpdate(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsSelectForUpdate() throws SQLException { try { return inner.supportsSelectForUpdate(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsStoredProcedures() throws SQLException { try { return inner.supportsStoredProcedures(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsSubqueriesInComparisons() throws SQLException { try { return inner.supportsSubqueriesInComparisons(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsSubqueriesInExists() throws SQLException { try { return inner.supportsSubqueriesInExists(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsSubqueriesInIns() throws SQLException { try { return inner.supportsSubqueriesInIns(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsSubqueriesInQuantifieds() throws SQLException { try { return inner.supportsSubqueriesInQuantifieds(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsCorrelatedSubqueries() throws SQLException { try { return inner.supportsCorrelatedSubqueries(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsUnion() throws SQLException { try { return inner.supportsUnion(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsUnionAll() throws SQLException { try { return inner.supportsUnionAll(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsOpenCursorsAcrossCommit() throws SQLException { try { return inner.supportsOpenCursorsAcrossCommit(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsOpenCursorsAcrossRollback() throws SQLException { try { return inner.supportsOpenCursorsAcrossRollback(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsOpenStatementsAcrossCommit() throws SQLException { try { return inner.supportsOpenStatementsAcrossCommit(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsOpenStatementsAcrossRollback() throws SQLException { try { return inner.supportsOpenStatementsAcrossRollback(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxBinaryLiteralLength() throws SQLException { try { return inner.getMaxBinaryLiteralLength(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxCharLiteralLength() throws SQLException { try { return inner.getMaxCharLiteralLength(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxColumnNameLength() throws SQLException { try { return inner.getMaxColumnNameLength(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxColumnsInGroupBy() throws SQLException { try { return inner.getMaxColumnsInGroupBy(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxColumnsInIndex() throws SQLException { try { return inner.getMaxColumnsInIndex(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxColumnsInOrderBy() throws SQLException { try { return inner.getMaxColumnsInOrderBy(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxColumnsInSelect() throws SQLException { try { return inner.getMaxColumnsInSelect(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxColumnsInTable() throws SQLException { try { return inner.getMaxColumnsInTable(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxConnections() throws SQLException { try { return inner.getMaxConnections(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxCursorNameLength() throws SQLException { try { return inner.getMaxCursorNameLength(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxIndexLength() throws SQLException { try { return inner.getMaxIndexLength(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxSchemaNameLength() throws SQLException { try { return inner.getMaxSchemaNameLength(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxProcedureNameLength() throws SQLException { try { return inner.getMaxProcedureNameLength(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxCatalogNameLength() throws SQLException { try { return inner.getMaxCatalogNameLength(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxRowSize() throws SQLException { try { return inner.getMaxRowSize(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean doesMaxRowSizeIncludeBlobs() throws SQLException { try { return inner.doesMaxRowSizeIncludeBlobs(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxStatementLength() throws SQLException { try { return inner.getMaxStatementLength(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxStatements() throws SQLException { try { return inner.getMaxStatements(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxTableNameLength() throws SQLException { try { return inner.getMaxTableNameLength(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxTablesInSelect() throws SQLException { try { return inner.getMaxTablesInSelect(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getMaxUserNameLength() throws SQLException { try { return inner.getMaxUserNameLength(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getDefaultTransactionIsolation() throws SQLException { try { return inner.getDefaultTransactionIsolation(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsTransactions() throws SQLException { try { return inner.supportsTransactions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsTransactionIsolationLevel(int a) throws SQLException { try { return inner.supportsTransactionIsolationLevel(a); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsDataDefinitionAndDataManipulationTransactions() throws SQLException { try { return inner.supportsDataDefinitionAndDataManipulationTransactions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsDataManipulationTransactionsOnly() throws SQLException { try { return inner.supportsDataManipulationTransactionsOnly(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean dataDefinitionCausesTransactionCommit() throws SQLException { try { return inner.dataDefinitionCausesTransactionCommit(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean dataDefinitionIgnoredInTransactions() throws SQLException { try { return inner.dataDefinitionIgnoredInTransactions(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getProcedures(String a, String b, String c) throws SQLException { try { ResultSet innerResultSet = inner.getProcedures(a, b, c); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getProcedureColumns(String a, String b, String c, String d) throws SQLException { try { ResultSet innerResultSet = inner.getProcedureColumns(a, b, c, d); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getTables(String a, String b, String c, String[] d) throws SQLException { try { ResultSet innerResultSet = inner.getTables(a, b, c, d); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getSchemas(String a, String b) throws SQLException { try { ResultSet innerResultSet = inner.getSchemas(a, b); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getSchemas() throws SQLException { try { ResultSet innerResultSet = inner.getSchemas(); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getCatalogs() throws SQLException { try { ResultSet innerResultSet = inner.getCatalogs(); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getTableTypes() throws SQLException { try { ResultSet innerResultSet = inner.getTableTypes(); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getColumns(String a, String b, String c, String d) throws SQLException { try { ResultSet innerResultSet = inner.getColumns(a, b, c, d); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getColumnPrivileges(String a, String b, String c, String d) throws SQLException { try { ResultSet innerResultSet = inner.getColumnPrivileges(a, b, c, d); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getTablePrivileges(String a, String b, String c) throws SQLException { try { ResultSet innerResultSet = inner.getTablePrivileges(a, b, c); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getBestRowIdentifier(String a, String b, String c, int d, boolean e) throws SQLException { try { ResultSet innerResultSet = inner.getBestRowIdentifier(a, b, c, d, e); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getVersionColumns(String a, String b, String c) throws SQLException { try { ResultSet innerResultSet = inner.getVersionColumns(a, b, c); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getPrimaryKeys(String a, String b, String c) throws SQLException { try { ResultSet innerResultSet = inner.getPrimaryKeys(a, b, c); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getImportedKeys(String a, String b, String c) throws SQLException { try { ResultSet innerResultSet = inner.getImportedKeys(a, b, c); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getExportedKeys(String a, String b, String c) throws SQLException { try { ResultSet innerResultSet = inner.getExportedKeys(a, b, c); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getCrossReference(String a, String b, String c, String d, String e, String f) throws SQLException { try { ResultSet innerResultSet = inner.getCrossReference(a, b, c, d, e, f); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getTypeInfo() throws SQLException { try { ResultSet innerResultSet = inner.getTypeInfo(); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getIndexInfo(String a, String b, String c, boolean d, boolean e) throws SQLException { try { ResultSet innerResultSet = inner.getIndexInfo(a, b, c, d, e); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsResultSetType(int a) throws SQLException { try { return inner.supportsResultSetType(a); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsResultSetConcurrency(int a, int b) throws SQLException { try { return inner.supportsResultSetConcurrency(a, b); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean ownUpdatesAreVisible(int a) throws SQLException { try { return inner.ownUpdatesAreVisible(a); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean ownDeletesAreVisible(int a) throws SQLException { try { return inner.ownDeletesAreVisible(a); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean ownInsertsAreVisible(int a) throws SQLException { try { return inner.ownInsertsAreVisible(a); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean othersUpdatesAreVisible(int a) throws SQLException { try { return inner.othersUpdatesAreVisible(a); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean othersDeletesAreVisible(int a) throws SQLException { try { return inner.othersDeletesAreVisible(a); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean othersInsertsAreVisible(int a) throws SQLException { try { return inner.othersInsertsAreVisible(a); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean updatesAreDetected(int a) throws SQLException { try { return inner.updatesAreDetected(a); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean deletesAreDetected(int a) throws SQLException { try { return inner.deletesAreDetected(a); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean insertsAreDetected(int a) throws SQLException { try { return inner.insertsAreDetected(a); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsBatchUpdates() throws SQLException { try { return inner.supportsBatchUpdates(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getUDTs(String a, String b, String c, int[] d) throws SQLException { try { ResultSet innerResultSet = inner.getUDTs(a, b, c, d); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsSavepoints() throws SQLException { try { return inner.supportsSavepoints(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsNamedParameters() throws SQLException { try { return inner.supportsNamedParameters(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsMultipleOpenResults() throws SQLException { try { return inner.supportsMultipleOpenResults(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsGetGeneratedKeys() throws SQLException { try { return inner.supportsGetGeneratedKeys(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getSuperTypes(String a, String b, String c) throws SQLException { try { ResultSet innerResultSet = inner.getSuperTypes(a, b, c); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getSuperTables(String a, String b, String c) throws SQLException { try { ResultSet innerResultSet = inner.getSuperTables(a, b, c); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsResultSetHoldability(int a) throws SQLException { try { return inner.supportsResultSetHoldability(a); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getDatabaseMajorVersion() throws SQLException { try { return inner.getDatabaseMajorVersion(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getDatabaseMinorVersion() throws SQLException { try { return inner.getDatabaseMinorVersion(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getJDBCMajorVersion() throws SQLException { try { return inner.getJDBCMajorVersion(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getJDBCMinorVersion() throws SQLException { try { return inner.getJDBCMinorVersion(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final int getSQLStateType() throws SQLException { try { return inner.getSQLStateType(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean locatorsUpdateCopy() throws SQLException { try { return inner.locatorsUpdateCopy(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsStatementPooling() throws SQLException { try { return inner.supportsStatementPooling(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final RowIdLifetime getRowIdLifetime() throws SQLException { try { return inner.getRowIdLifetime(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException { try { return inner.supportsStoredFunctionsUsingCallSyntax(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean autoCommitFailureClosesAllResultSets() throws SQLException { try { return inner.autoCommitFailureClosesAllResultSets(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getClientInfoProperties() throws SQLException { try { ResultSet innerResultSet = inner.getClientInfoProperties(); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getFunctions(String a, String b, String c) throws SQLException { try { ResultSet innerResultSet = inner.getFunctions(a, b, c); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getFunctionColumns(String a, String b, String c, String d) throws SQLException { try { ResultSet innerResultSet = inner.getFunctionColumns(a, b, c, d); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final ResultSet getPseudoColumns(String a, String b, String c, String d) throws SQLException { try { ResultSet innerResultSet = inner.getPseudoColumns(a, b, c, d); if (innerResultSet == null) return null; return new NewProxyResultSet( innerResultSet, parentPooledConnection, inner, this ); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final boolean generatedKeyAlwaysReturned() throws SQLException { try { return inner.generatedKeyAlwaysReturned(); } catch (NullPointerException exc) { if ( this.isDetached() ) { throw SqlUtils.toSQLException("You can't operate on a closed DatabaseMetaData!!!", exc); } else throw exc; } catch (Exception exc) { if (! this.isDetached()) { throw parentPooledConnection.handleThrowable( exc ); } else throw SqlUtils.toSQLException( exc ); } } public final Object unwrap(Class a) throws SQLException { if (this.isWrapperForInner( a )) return inner.unwrap( a ); if (this.isWrapperForThis( a )) return this; else throw new SQLException( this + " is not a wrapper for or implementation of " + a.getName()); } public final boolean isWrapperFor(Class a) throws SQLException { return ( isWrapperForInner( a ) || isWrapperForThis( a ) ); } private final static MLogger logger = MLog.getLogger( "com.mchange.v2.c3p0.impl.NewProxyDatabaseMetaData" ); volatile NewPooledConnection parentPooledConnection; ConnectionEventListener cel = new ConnectionEventListener() { public void connectionErrorOccurred(ConnectionEvent evt) { /* DON'T detach()... IGNORE -- this could be an ordinary error. Leave it to the PooledConnection to test, but leave proxies intact */ } public void connectionClosed(ConnectionEvent evt) { detach(); } }; void attach( NewPooledConnection parentPooledConnection ) { this.parentPooledConnection = parentPooledConnection; parentPooledConnection.addConnectionEventListener( cel ); } private void detach() { parentPooledConnection.removeConnectionEventListener( cel ); parentPooledConnection = null; } NewProxyDatabaseMetaData( DatabaseMetaData inner, NewPooledConnection parentPooledConnection ) { this( inner ); attach( parentPooledConnection ); } boolean isDetached() { return (this.parentPooledConnection == null); } public String toString() { return super.toString() + " [wrapping: " + inner + "]"; } // helper methods for unwrap( ... ), isWrapperFor( ... ) private boolean isWrapperForInner( Class intfcl ) { return ( java.sql.DatabaseMetaData.class == intfcl || intfcl.isAssignableFrom( inner.getClass() ) ); } private boolean isWrapperForThis( Class intfcl ) { return intfcl.isAssignableFrom( this.getClass() ); } NewProxyConnection proxyCon; NewProxyDatabaseMetaData( DatabaseMetaData inner, NewPooledConnection parentPooledConnection, NewProxyConnection proxyCon ) { this( inner, parentPooledConnection ); this.proxyCon = proxyCon; } }