Class PooledSoftReference<T>

java.lang.Object
org.apache.tomcat.dbcp.pool2.impl.DefaultPooledObject<T>
org.apache.tomcat.dbcp.pool2.impl.PooledSoftReference<T>
Type Parameters:
T - the type of the underlying object that the wrapped SoftReference refers to.
All Implemented Interfaces:
Comparable<PooledObject<T>>, PooledObject<T>

public class PooledSoftReference<T> extends DefaultPooledObject<T>
Extension of DefaultPooledObject to wrap pooled soft references.

This class is intended to be thread-safe.

Since:
2.0
  • Constructor Details

    • PooledSoftReference

      public PooledSoftReference(SoftReference<T> reference)
      Creates a new PooledSoftReference wrapping the provided reference.
      Parameters:
      reference - SoftReference to be managed by the pool
  • Method Details

    • getObject

      public T getObject()
      Gets the object that the wrapped SoftReference refers to.

      Note that if the reference has been cleared, this method will return null.

      Specified by:
      getObject in interface PooledObject<T>
      Overrides:
      getObject in class DefaultPooledObject<T>
      Returns:
      Object referred to by the SoftReference
    • getReference

      public SoftReference<T> getReference()
      Gets the SoftReference wrapped by this object.
      Returns:
      underlying SoftReference
    • setReference

      public void setReference(SoftReference<T> reference)
      Sets the wrapped reference.

      This method exists to allow a new, non-registered reference to be held by the pool to track objects that have been checked out of the pool. The actual parameter should be a reference to the same object that getObject() returns before calling this method.

      Parameters:
      reference - new reference
    • toString

      public String toString()
      Description copied from interface: PooledObject
      Gets a String form of the wrapper for debug purposes. The format is not fixed and may change at any time.
      Specified by:
      toString in interface PooledObject<T>
      Overrides:
      toString in class DefaultPooledObject<T>