code: protected ConnectionWrapper checkOutFreePool(Transaction tx) {
          if (freePool.isEmpty()) {
              return null;
          }
          final FreeItem item = (FreeItem) freePool.removeLast();
          final ConnectionWrapper wrapper = item.getConnection();
          wrapper.init(tx);
          item.destroy();
          if (validationQuery == null || validationQuery.isEmpty()) {
              return wrapper;
          }
          if (validateConnection(wrapper, item.getPooledTime())) {
              return wrapper;
          }
          return null;
      }
docs: ---------