Buggy code:
public abstract class Session implements IClusterable , IEventSink { private static final long serialVersionUID = 1L ; private static final Logger log = LoggerFactory . getLogger ( Session . class ) ; public static final String SESSION_ATTRIBUTE_NAME = "session" ; private int sequence = 1 ; private int pageId = 0 ; private final IProvider < PageAccessSynchronizer > pageAccessSynchronizer ; public static boolean exists ( ) { } public static Session get ( ) { } protected ClientInfo clientInfo ; private transient boolean dirty = false ; private final FeedbackMessages feedbackMessages = new FeedbackMessages ( ) ; private String id = null ; private Locale locale ; private MetaDataEntry < ? > [ ] metaData ; private transient boolean sessionInvalidated = false ; private transient ISessionStore sessionStore ; private String style ; private transient Map < String , Serializable > temporarySessionAttributes ; public Session ( Request request ) { } public final void bind ( ) { } public abstract void cleanupFeedbackMessages ( ) { } public final void clear ( ) { } public final void error ( final Serializable message ) { } public final void fatal ( final Serializable message ) { } public final void debug ( final Serializable message ) { } public final Application getApplication ( ) { } public IAuthorizationStrategy getAuthorizationStrategy ( ) { } public final IClassResolver getClassResolver ( ) { } public abstract ClientInfo getClientInfo ( ) { } public final FeedbackMessages getFeedbackMessages ( ) { } public final String getId ( ) { } public Locale getLocale ( ) { } public final < M extends Serializable > M getMetaData ( final MetaDataKey < M > key ) { } protected boolean isCurrentRequestValid ( RequestCycle lockedRequestCycle ) { } public IPageFactory getPageFactory ( ) { } public final long getSizeInBytes ( ) { } public final String getStyle ( ) { } public final void info ( final Serializable message ) { } public final void success ( final Serializable message ) { } public void invalidate ( ) { } private void destroy ( ) { } public void invalidateNow ( ) { } public void replaceSession ( ) { } public final boolean isSessionInvalidated ( ) { } public final boolean isTemporary ( ) { } public final void setClientInfo ( ClientInfo clientInfo ) { } public void setLocale ( final Locale locale ) { } public final void setMetaData ( final MetaDataKey < ? > key , final Serializable object ) { } public final Session setStyle ( final String style ) { } public final void warn ( final Serializable message ) { } private void addFeedbackMessage ( Serializable message , int level ) { } public void detach ( ) { } public void internalDetach ( ) { } public final void dirty ( ) { } public final Serializable getAttribute ( final String name ) { } protected final List < String > getAttributeNames ( ) { } protected ISessionStore getSessionStore ( ) { } protected final void removeAttribute ( String name ) { } public final void setAttribute ( String name , Serializable value ) { } public synchronized int nextSequenceValue ( ) { } public synchronized int nextPageId ( ) { } public final IPageManager getPageManager ( ) { <START_BUG> IPageManager pageManager = Application . get ( ) . getPageManager ( ) ; <END_BUG> return pageAccessSynchronizer . get ( ) . adapt ( pageManager ) ; } public void onEvent ( IEvent < ? > event ) { } private static final class PageAccessSynchronizerProvider extends LazyInitializer < PageAccessSynchronizer > { @ Override protected PageAccessSynchronizer createInstance ( ) { } } }

Fix:
IPageManager pageManager = Application . get ( ) . internalGetPageManager ( ) ;