org.apache.tomcat.dbcp.pool2.impl

## Class SecurityManagerCallStack

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

- All Implemented Interfaces:
    CallStack

      public class SecurityManagerCallStack
      extends Object
      implements CallStack

  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 and Description
    `SecurityManagerCallStack(String messageFormat, boolean useTimestamp)` Create a new instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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 java.lang.Object

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

- - ### Constructor Detail

    - #### SecurityManagerCallStack

          public SecurityManagerCallStack(String messageFormat,
                                  boolean useTimestamp)

      Create a new instance.
      Parameters:
        `messageFormat` - message format
        `useTimestamp` - whether to format the dates in the output message or not

  - ### Method Detail

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

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

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

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.