In many parts of the runtime, we need to pool instances of objects that are expensive to create (such as JAXB objects, StAX parsers, Tube instances.)
This class provides a default implementation of such a pool. TODO: improve the implementation author: Kohsuke Kawaguchi
This method is used when someone wants to Pool.take() take an object from an empty pool.
Also note that multiple threads may call this method concurrently.
If no object is available in the pool, this method creates a new one. always non-null.