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

# Interface CallStack

All Known Implementing Classes:
  `NoOpCallStack`, `SecurityManagerCallStack`, `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
See Also:
  - `CallStackUtils`

## 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

### 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

### 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.

### clear

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