Package org.apache.tomcat.dbcp.pool2.impl

# Interface CallStack

All Known Implementing Classes:
  `NoOpCallStack`, `ThrowableCallStack`

public interface CallStack
Strategy for obtaining and printing the current call stack. This is primarily useful for usage tracking so that different JVMs and configurations can use more efficient strategies for obtaining the current call stack depending on metadata needs.

Since:
  2.4.3

## Method Summary

Modifier and Type
Method
Description
`void`
`clear()`
Clears the current stack trace snapshot.
`void`
`fillInStackTrace()`
Takes a snapshot of the current call stack.
`boolean`
`printStackTrace(PrintWriter writer)`
Prints the current stack trace if available to a PrintWriter.

## Method Details

### clear

void clear()
Clears the current stack trace snapshot. Subsequent calls to `printStackTrace(PrintWriter)` will be no-ops until another call to `fillInStackTrace()`.

### fillInStackTrace

void fillInStackTrace()
Takes a snapshot of the current call stack. Subsequent calls to `printStackTrace(PrintWriter)` will print out that stack trace until it is cleared.

### printStackTrace

boolean printStackTrace(PrintWriter writer)
Prints the current stack trace if available to a PrintWriter. The format is undefined and is primarily useful for debugging issues with `PooledObject` usage in user code.

Parameters:
  `writer` - a PrintWriter to write the current stack trace to if available
Returns:
  true if a stack trace was available to print or false if nothing was printed