code: public T borrowObject() {
  		T object;
  		if ((object = pool.poll()) == null) {
  			object = createObject();
  		}
  
  		return object;
  	}
docs: Gets the next free object from the pool. If the pool doesn't contain any objects,
  a new object will be created and given to the caller of this method back.
  
  @return T borrowed object