code: public T obtain () {
  		T object = freeObjects.poll();
  		return object != null ? object : create();
  	}
docs: Returns an object from this pool. The object may be new (from {@link #create()}) or reused (previously {@link #free(Object)
  freed}).