org.apache.struts2.jasper.runtime

## Class PerThreadTagHandlerPool

- java.lang.Object
- - org.apache.struts2.jasper.runtime.TagHandlerPool
  - - org.apache.struts2.jasper.runtime.PerThreadTagHandlerPool

-     public class PerThreadTagHandlerPool
      extends TagHandlerPool

  Thread-local based pool of tag handlers that can be reused.
  Author:
    Jan Luehe, Costin Manolache

- - ### Field Summary

    - ### Fields inherited from class org.apache.struts2.jasper.runtime.TagHandlerPool

      `instanceManager, OPTION_MAXSIZE, OPTION_TAGPOOL`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PerThreadTagHandlerPool()` Constructs a tag handler pool with the default capacity.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `javax.servlet.jsp.tagext.Tag` | `get(Class handlerClass)` Gets the next available tag handler from this tag handler pool, instantiating one if this tag handler pool is empty.
    `protected void` | `init(javax.servlet.ServletConfig config)`
    `void` | `release()` Calls the release() method of all tag handlers in this tag handler pool.
    `void` | `reuse(javax.servlet.jsp.tagext.Tag handler)` Adds the given tag handler to this tag handler pool, unless this tag handler pool has already reached its capacity, in which case the tag handler's release() method is called.

    - ### Methods inherited from class org.apache.struts2.jasper.runtime.TagHandlerPool

      `getOption, getTagHandlerPool`

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### PerThreadTagHandlerPool

          public PerThreadTagHandlerPool()

      Constructs a tag handler pool with the default capacity.

  - ### Method Detail

    - #### init

          protected void init(javax.servlet.ServletConfig config)

      Overrides:
        `init` in class `TagHandlerPool`

    - #### get

          public javax.servlet.jsp.tagext.Tag get(Class handlerClass)
                                           throws javax.servlet.jsp.JspException

      Gets the next available tag handler from this tag handler pool, instantiating one if this tag handler pool is empty.
      Overrides:
        `get` in class `TagHandlerPool`
      Parameters:
        `handlerClass` - Tag handler class
      Returns:
        Reused or newly instantiated tag handler
      Throws:
        `javax.servlet.jsp.JspException` - if a tag handler cannot be instantiated

    - #### reuse

          public void reuse(javax.servlet.jsp.tagext.Tag handler)

      Adds the given tag handler to this tag handler pool, unless this tag handler pool has already reached its capacity, in which case the tag handler's release() method is called.
      Overrides:
        `reuse` in class `TagHandlerPool`
      Parameters:
        `handler` - Tag handler to add to this tag handler pool

    - #### release

          public void release()

      Calls the release() method of all tag handlers in this tag handler pool.
      Overrides:
        `release` in class `TagHandlerPool`

Copyright © 2000–2026 Apache Software Foundation. All rights reserved.