Buggy code:
public abstract class Page extends MarkupContainer implements IFeedbackBoundary , IRedirectListener { protected static final boolean ACCESS_ALLOWED = true ; protected static final boolean ACCESS_DENIED = false ; private static final short FLAG_IS_DIRTY = FLAG_RESERVED1 ; private static final short FLAG_IS_RENDERING = FLAG_RESERVED2 ; private static final short FLAG_NEW_VERSION = FLAG_RESERVED3 ; private static final short FLAG_TRACK_CHANGES = FLAG_RESERVED4 ; private static final Log log = LogFactory . getLog ( Page . class ) ; private int autoIndex ; private FeedbackMessages feedbackMessages ; private transient PageMap pageMap ; private String pageMapName ; private transient Set renderedComponents ; private transient Session session = null ; private IPageVersionManager versionManager ; protected Page ( ) { } protected Page ( final IModel model ) { } public final boolean continueToOriginalDestination ( ) { } public final int getAutoIndex ( ) { } public final int getCurrentVersionNumber ( ) { } public final FeedbackMessages getFeedbackMessages ( ) { } public final PageMap getPageMap ( ) { } public final Iterator getPageSets ( ) { } public Page getVersion ( final int versionNumber ) { } public final String hierarchyAsString ( ) { final StringBuffer buffer = new StringBuffer ( ) ; buffer . append ( ( ( ( ( "Page<seq2seq4repair_space>" + ( getId ( ) ) ) + "<seq2seq4repair_space>(version<seq2seq4repair_space>" ) + ( getCurrentVersionNumber ( ) ) ) + ")" ) ) ; visitChildren ( new IVisitor ( ) { public Object component ( Component component ) { int levels = 0 ; for ( Component current = component ; current != null ; current = current . getParent ( ) ) { levels ++ ; } <START_BUG> buffer . append ( ( ( ( ( StringValue . repeat ( levels , "<seq2seq4repair_space>" ) ) + ( component . getPageRelativePath ( ) ) ) + "." ) + ( Classes . name ( component . getClass ( ) ) ) ) ) ; <END_BUG> return null ; } } ) ; return buffer . toString ( ) ; } public final boolean isDirty ( ) { } public boolean isErrorPage ( ) { } public PageState newPageState ( ) { } public final void onRedirect ( ) { } public final void redirectToInterceptPage ( final Page page ) { } public final void removePersistedFormData ( final Class formClass , final boolean disablePersistence ) { } public final void doRender ( ) { } public final void setDirty ( final boolean dirty ) { } public final void setPageMap ( final String pageMapName ) { } public String toString ( ) { } public abstract String urlFor ( final Component component , final Class listenerInterface ) { } public abstract String urlFor ( final String path ) { } public abstract String urlFor ( final String pageMapName , final Class pageClass , final PageParameters parameters ) { } protected boolean checkAccess ( ) { } protected void configureResponse ( ) { } protected final void internalOnEndRequest ( ) { } private final void endVersion ( ) { } protected final void internalOnModelChanged ( ) { } protected IPageVersionManager newVersionManager ( ) { } protected final void onRender ( ) { } final void componentAdded ( final Component component ) { } final void componentModelChanging ( final Component component ) { } final void componentStateChanging ( final Component component , Change change ) { } final void componentRemoved ( final Component component ) { } final void componentRendered ( final Component component ) { } final Session getSessionInternal ( ) { } final void resetMarkupStreams ( ) { } final void setId ( final int id ) { } private final void checkRendering ( ) { } private final void init ( ) { } private final boolean isVersioned ( final Component component ) { } private final void newVersion ( ) { } }

Fix:
buffer . append ( ( ( ( ( StringValue . repeat ( levels , "<seq2seq4repair_space>" ) ) + ( component . getPageRelativePath ( ) ) ) + ":" ) + ( Classes . name ( component . getClass ( ) ) ) ) ) ;