private Object processExecute(Statement proxy,Method method,Object[] args) throws Throwable {
  long startTime=logSlowQuery ? System.currentTimeMillis() : 0L;
  try {
    if (method.getName() == "executeQuery")     return newProxiedResultSet(proxy,method,args);
    return targetInvoke(method,args);
  }
  finally {
    if (logSlowQuery)     logQuery(proxy,args,startTime);
  }
}

private Object processExecute ( Statement proxy , Method method , Object [ ] args ) throws Throwable { long startTime = logSlowQuery ? System . currentTimeMillis ( ) : 0L ; try { if ( method . getName ( ) == "executeQuery" ) return newProxiedResultSet ( proxy , method , args ) ; return targetInvoke ( method , args ) ; } finally { if ( logSlowQuery ) logQuery ( proxy , args , startTime ) ; } }
mainly exists to provide statement . execute . . . methods timing logging .
