docs: protected Connection getConnection(ConnectionRequestInfo connInfo) throws SQLException {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled(); 
  
          if (isTraceOn && tc.isEntryEnabled()) 
              Tr.entry(this, tc, "getConnection", AdapterUtil.toString(connInfo));
  
          // Perform wrapper initialization in the common getConnection method.  Check for
          // connection errors on initialization. 
          WSJdbcConnection connWrapper;
          try // get a Connection
          {
              connWrapper = (WSJdbcConnection) cm.allocateConnection(mcf, connInfo);
          }
          // Allow AdapterUtil to convert ConnectionWaitTimeoutExceptions for us. 
          catch (ResourceException resX) {
              FFDCFilter.processException(
                                          resX,
                                          "com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection",
                                          "299",
                                          this);
              SQLException x = AdapterUtil.toSQLException(resX);
              if (isTraceOn && tc.isEntryEnabled()) 
                  Tr.exit(this, tc, "getConnection", "Exception");
              throw x;
          }
          try // to initialize the connection.
          {
              connWrapper.initialize(cm);
          } catch (SQLException sqlX) {
              FFDCFilter.processException(
                                          sqlX,
                                          "com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection",
                                          "280",
                                          this);
              sqlX = WSJdbcUtil.mapException(connWrapper, sqlX);
              if (isTraceOn && tc.isEntryEnabled()) 
                  Tr.exit(this, tc, "getConnection", sqlX);
              throw sqlX;
          }
  
          // create dynamic proxy for vendor interfaces
          Connection c = dsConfig.get().enableConnectionCasting
                          ? connWrapper.getCastableWrapper(vendorConnectionInterfaces)
                          : connWrapper;
  
          if (isTraceOn && tc.isEntryEnabled()) 
              Tr.exit(this, tc, "getConnection", c);
          return c;
      }