public int getNetworkTimeoutSafely() throws SQLException {
        if(!mcf.supportsGetNetworkTimeout){
            if(TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                Tr.debug(tc, "Returning default network timeout.", defaultNetworkTimeout);
            return defaultNetworkTimeout;
        }
        Throwable x;
        try{
            return getNetworkTimeout();
        } catch(AbstractMethodError e){
            // If we are running pre-Java7
            x = e;
        } catch(NoSuchMethodError e){
            // If the driver is pre-4.1
            x = e;
        } catch (SQLException e) {
            // In case the driver is not 4.1 compliant but says it is 
            String sqlMessge = e.getMessage() == null ? "" : e.getMessage();
            if (AdapterUtil.isUnsupportedException(e))
                x = e;
            //try to catch any other variation of not supported, does not support, unsupported, etc.
            //this is needed by several JDBC drivers, but one known driver is DataDirect OpenEdge JDBC Driver
            else if(sqlMessge.contains("support"))
                x = e;
            else
                throw e;
        }
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
            Tr.debug(this, tc, "getNetworkTimeout support false due to " + x);
        mcf.supportsGetNetworkTimeout = false;
        return defaultNetworkTimeout;
    }
public int getNetworkTimeoutSafely ( ) throws SQLException { if ( ! mcf . supportsGetNetworkTimeout ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) Tr . debug ( tc , "Returning default network timeout." , defaultNetworkTimeout ) ; return defaultNetworkTimeout ; } Throwable x ; try { return getNetworkTimeout ( ) ; } catch ( AbstractMethodError e ) { x = e ; } catch ( NoSuchMethodError e ) { x = e ; } catch ( SQLException e ) { String sqlMessge = e . getMessage ( ) == null ? "" : e . getMessage ( ) ; if ( AdapterUtil . isUnsupportedException ( e ) ) x = e ; else if ( sqlMessge . contains ( "support" ) ) x = e ; else throw e ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) Tr . debug ( this , tc , "getNetworkTimeout support false due to " + x ) ; mcf . supportsGetNetworkTimeout = false ; return defaultNetworkTimeout ; }
Safely gets the NetworkTimeout.  This method differs from the original getNetworkTimeout() method
by returning a default value when before JDBC-4.1 or on a driver that does not support getNetworkTimeout().
@return The networkTimeout, or a default value if getNetworkTimeout is not supported by the driver, or
the current JDBC runtime is pre-JDBC-4.1.