Buggy code:
public abstract class Page extends MarkupContainer implements 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 Page . MetaDataEntry [ ] metaData ; private transient PageMap pageMap ; private String pageMapName ; private transient Set renderedComponents ; private IPageVersionManager versionManager ; private static class MetaDataEntry { Component component ; MetaDataKey key ; Serializable object ; } protected Page ( ) { } protected Page ( final IModel model ) { } public final boolean continueToOriginalDestination ( ) { } public final void doRender ( ) { } 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 ( ) { } 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 setDirty ( final boolean dirty ) { } public final void setPageMap ( final String pageMapName ) { } public void beforeCallComponent ( final Component component , final Method method ) { } public void afterCallComponent ( final Component component , final Method method ) { } public String toString ( ) { } public final String urlFor ( final String pageMapName , final Class pageClass , final PageParameters parameters ) { } public final String urlFor ( final Component component , final Class listenerInterface ) { } public final String urlFor ( final IRequestTarget requestTarget ) { } public final String urlFor ( final String resourceKey ) { } public boolean checkAccess ( ) { } protected void configureResponse ( ) { } protected final void internalOnEndRequest ( ) { } 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 componentRemoved ( final Component component ) { } private void checkHierarchyChange ( Component component ) { } final void componentRendered ( final Component component ) { } final void componentStateChanging ( final Component component , Change change ) { } Serializable getMetaData ( final Component component , final MetaDataKey key ) { } final void resetMarkupStreams ( ) { } final void setFormComponentValuesFromCookies ( ) { } final void setId ( final int id ) { } void setMetaData ( final Component component , final MetaDataKey key , final Serializable object ) { } private final void checkRendering ( final MarkupContainer renderedContainer ) { } private final void endVersion ( ) { } private final void init ( ) { } private final boolean mayTrackChangesFor ( final Component component ) { <START_BUG> if ( ( component . isAuto ( ) ) && ( ! ( component . isVersioned ( ) ) ) ) { <END_BUG> return false ; } else { if ( getFlag ( Page . FLAG_TRACK_CHANGES ) ) { if ( ! ( getFlag ( Page . FLAG_NEW_VERSION ) ) ) { if ( ( versionManager ) == null ) { versionManager = newVersionManager ( ) ; } versionManager . beginVersion ( ) ; setFlag ( Page . FLAG_NEW_VERSION , true ) ; } return true ; } return false ; } } public final void startComponentRender ( Component component ) { } public final void endComponentRender ( Component component ) { } }

Fix:
if ( ( component . isAuto ( ) ) || ( ! ( component . isVersioned ( ) ) ) ) {