/** Pushes an empty list onto the output list stack. */
 public synchronized void splitOutputList() {
   logger.debug3("Splitting");
   listStack.push(new ArrayList());
 }
 /**
  * Resets the state of this transform; this clears the stack and pushes an empty list onto it, and
  * clears the flag that indicates there has been at least one change.
  *
  * <p>This method is called at the beginning of {@link #transform}.
  *
  * <p>This method is <em>not</em> called at the end of {@link #transform}. Though the contents of
  * the resulting output list may have been written to the PDF page already, clients may wish to
  * inspect the final result without having to re-parse the token stream of the PDF page. However,
  * the result list may be quite large and the stack will hold on to it until the next call to this
  * method, which may represent a memory issue. Thus clients <em>may</em> call {@link #reset} after
  * a call to {@link #transform} to clear the output list stack.
  */
 public synchronized void reset() {
   logger.debug3("Resetting the page stream transform");
   atLeastOneChange = false;
   listStack.clear();
   listStack.push(new ArrayList()); // FIXME: initial capacity?
 }