This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Your doAfterTag() method is not executed at all. The problem is that the API method that you have to override is doAfterBody().
That's why it doesn't get called at all. The default implementation of that method is empty and it is skipping the subsequent body invocation.