SecurityManagerCallStack (Apache Tomcat 9.0.111 API Documentation)
Description: declaration: package: org.apache.tomcat.dbcp.pool2.impl, class: SecurityManagerCallStack

# Class SecurityManagerCallStack

java.lang.Object
org.apache.tomcat.dbcp.pool2.impl.SecurityManagerCallStack

All Implemented Interfaces:
  `CallStack`

public class SecurityManagerCallStack extends Object implements CallStack
A `CallStack` strategy using a `SecurityManager`. Obtaining the current call stack is much faster via a SecurityManger, but access to the underlying method may be restricted by the current SecurityManager. In environments where a SecurityManager cannot be created, `ThrowableCallStack` should be used instead.

Since:
  2.4.3
See Also:
  - `RuntimePermission`
  - `SecurityManager.getClassContext()`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SecurityManagerCallStack(String messageFormat, boolean useTimestamp)`
  Creates a new instance.

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

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### SecurityManagerCallStack

    public SecurityManagerCallStack(String messageFormat, boolean useTimestamp)
    Creates a new instance.
    Parameters:
      `messageFormat` - message format
      `useTimestamp` - whether to format the dates in the output message or not

- ## Method Details

  - ### clear

    public void clear()
    Description copied from interface: `CallStack`
    Clears the current stack trace snapshot. Subsequent calls to `CallStack.printStackTrace(PrintWriter)` will be no-ops until another call to `CallStack.fillInStackTrace()`.
    Specified by:
      `clear` in interface `CallStack`

  - ### fillInStackTrace

    public void fillInStackTrace()
    Description copied from interface: `CallStack`
    Takes a snapshot of the current call stack. Subsequent calls to `CallStack.printStackTrace(PrintWriter)` will print out that stack trace until it is cleared.
    Specified by:
      `fillInStackTrace` in interface `CallStack`

  - ### printStackTrace

    public boolean printStackTrace(PrintWriter writer)
    Description copied from interface: `CallStack`
    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.
    Specified by:
      `printStackTrace` in interface `CallStack`
    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