code: public void reuse(Tag handler) {
          PerThreadData ptd=(PerThreadData)perThread.get();
  
          if( ptd==null ) {
              ptd=new PerThreadData();
              ptd.handlers=new Tag[ initialSize ];
              ptd.current=0;
              threadData.put( ptd, ptd );
          }
  
  	if (ptd.current < (ptd.handlers.length - 1)) {
  	    ptd.handlers[++ptd.current] = handler;
              return;
          }
  
          // no more space
          if( ptd.handlers.length < maxSize ) {
              // reallocate
              Tag newH[]=new Tag[ptd.handlers.length + initialSize];
              System.arraycopy(ptd.handlers, 0, newH, 0, ptd.handlers.length);
              ptd.handlers=newH;
              ptd.handlers[++ptd.current]=handler;
              return;
          }
  
          //else
  	handler.release();
      }
docs: 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.
  
  @param handler Tag handler to add to this tag handler pool