Class AbandonedTrace

java.lang.Object
org.apache.tomcat.dbcp.dbcp2.AbandonedTrace
All Implemented Interfaces:
AutoCloseable, TrackedUse
Direct Known Subclasses:
DelegatingConnection, DelegatingResultSet, DelegatingStatement

public class AbandonedTrace extends Object implements TrackedUse, AutoCloseable
Tracks connection usage for recovering and reporting abandoned connections.

The JDBC Connection, Statement, and ResultSet classes extend this class.

Since:
2.0
  • Constructor Details

    • AbandonedTrace

      public AbandonedTrace()
      Creates a new AbandonedTrace without config and without doing abandoned tracing.
    • AbandonedTrace

      public AbandonedTrace(AbandonedTrace parent)
      Constructs a new AbandonedTrace with a parent object.
      Parameters:
      parent - AbandonedTrace parent object.
  • Method Details

    • addTrace

      protected void addTrace(AbandonedTrace trace)
      Adds an object to the list of objects being traced.
      Parameters:
      trace - AbandonedTrace object to add.
    • clearTrace

      protected void clearTrace()
      Clears the list of objects being traced by this object.
    • close

      public void close() throws SQLException
      Subclasses can implement this nop.
      Specified by:
      close in interface AutoCloseable
      Throws:
      SQLException - Ignored here, for subclasses.
      Since:
      2.10.0
    • close

      protected void close(Consumer<Exception> exceptionHandler)
      Closes this resource and if an exception is caught, then calls exceptionHandler.
      Parameters:
      exceptionHandler - Consumes exception thrown closing this resource.
      Since:
      2.10.0
    • getLastUsed

      @Deprecated public long getLastUsed()
      Deprecated.
      Gets the last time this object was used in milliseconds.
      Specified by:
      getLastUsed in interface TrackedUse
      Returns:
      long time in milliseconds.
    • getLastUsedInstant

      public Instant getLastUsedInstant()
      Description copied from interface: TrackedUse
      Gets the last Instant this object was used.

      Starting with Java 9, the JRE SystemClock precision is increased usually down to microseconds, or tenth of microseconds, depending on the OS, Hardware, and JVM implementation.

      Specified by:
      getLastUsedInstant in interface TrackedUse
      Returns:
      the last Instant this object was used.
    • getTrace

      protected List<AbandonedTrace> getTrace()
      Gets a list of objects being traced by this object.
      Returns:
      List of objects.
    • removeThisTrace

      protected void removeThisTrace(Object source)
      Removes this object the source object is tracing.
      Parameters:
      source - The object tracing
      Since:
      2.7.0
    • removeTrace

      protected void removeTrace(AbandonedTrace trace)
      Removes a child object this object is tracing.
      Parameters:
      trace - AbandonedTrace object to remove.
    • setLastUsed

      protected void setLastUsed()
      Sets the time this object was last used to the current time in milliseconds.
    • setLastUsed

      protected void setLastUsed(Instant lastUsedInstant)
      Sets the instant this object was last used.
      Parameters:
      lastUsedInstant - instant.
      Since:
      2.10.0
    • setLastUsed

      @Deprecated protected void setLastUsed(long lastUsedMillis)
      Deprecated.
      Sets the time in milliseconds this object was last used.
      Parameters:
      lastUsedMillis - time in milliseconds.