Buggy code:
public abstract class Session implements Serializable , IConverterLocator { private static final long serialVersionUID = 1L ; public static final String SESSION_ATTRIBUTE_NAME = "session" ; static final String pageMapEntryAttributePrefix = "p:" ; private static final ThreadLocal < Session > current = new ThreadLocal < Session > ( ) ; private static final ThreadLocal < List < Serializable > > dirtyObjects = new ThreadLocal < List < Serializable > > ( ) ; private static final Log log = LogFactory . getLog ( Session . class ) ; private static final String pageMapAttributePrefix = "m:" ; private ClientInfo clientInfo ; private transient IConverterLocator converterSupplier ; private transient boolean dirty = false ; private Locale locale ; private int autoCreatePageMapCounter = 0 ; private LinkedList < PageMap > usedPageMaps = new LinkedList < PageMap > ( ) ; private String style ; private FeedbackMessages feedbackMessages = new FeedbackMessages ( new CopyOnWriteArrayList < wicket . feedback . FeedbackMessage > ( ) ) ; private transient Map < PageMap , Thread > pageMapsUsedInRequest ; private String id = null ; private transient ISessionStore sessionStore ; private MetaDataEntry [ ] metaData ; public static interface IPageMapVisitor { public void pageMap ( final PageMap pageMap ) { } } public static Session get ( ) { } public static Session get ( boolean forceBind ) { } public final void bind ( ) { } public final boolean isTemporary ( ) { } public static void set ( final Session session ) { } public static void unset ( ) { } protected Session ( final Application application ) { } public final void clear ( ) { } public Application getApplication ( ) { } public IAuthorizationStrategy getAuthorizationStrategy ( ) { } public final IClassResolver getClassResolver ( ) { } public ClientInfo getClientInfo ( ) { } public final PageMap getDefaultPageMap ( ) { } public final String getId ( ) { } public Locale getLocale ( ) { } public final Serializable getMetaData ( final MetaDataKey key ) { } public final Page getPage ( final String pageMapName , final String path , final int versionNumber ) { } public final IPageFactory getPageFactory ( ) { } public final IPageFactory getPageFactory ( final Page page ) { } public final PageMap pageMapForName ( String pageMapName , final boolean autoCreate ) { } public final synchronized PageMap createAutoPageMap ( ) { } public final synchronized String createAutoPageMapName ( ) { } public final List < PageMap > getPageMaps ( ) { } public final long getSizeInBytes ( ) { } public final String getStyle ( ) { } public final void init ( ) { } public void invalidate ( ) { } public final PageMap newPageMap ( final String name ) { } public final RequestCycle newRequestCycle ( final Request request , final Response response ) { } public final void removePageMap ( final PageMap pageMap ) { } public final void setClientInfo ( ClientInfo clientInfo ) { } public final 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 touch ( Page page ) { } public final void visitPageMaps ( final Session . IPageMapVisitor visitor ) { } public final void info ( final Serializable message ) { } public final void warn ( final Serializable message ) { } public final void error ( final Serializable message ) { } public final FeedbackMessages getFeedbackMessages ( ) { } public final IConverter getConverter ( Class type ) { if ( ( converterSupplier ) == null ) { <START_BUG> converterSupplier = getApplication ( ) . getApplicationSettings ( ) . getConverterSupplierFactory ( ) . newConverterSupplier ( ) ; <END_BUG> } return converterSupplier . getConverter ( type ) ; } private void addFeedbackMessage ( Serializable message , int level ) { } protected void detach ( ) { } protected void dirty ( ) { } protected final Object getAttribute ( final String name ) { } protected final List < String > getAttributeNames ( ) { } protected abstract IRequestCycleFactory getRequestCycleFactory ( ) { } protected ISessionStore getSessionStore ( ) { } protected final void removeAttribute ( String name ) { } protected final void setAttribute ( String name , Object value ) { } protected void update ( ) { } final void cleanupFeedbackMessages ( ) { } void dirtyPage ( final Page page ) { } final void requestDetached ( ) { } void dirtyPageMap ( final PageMap map ) { } private final String attributeForPageMapName ( final String pageMapName ) { } List < Serializable > getDirtyObjectsList ( ) { } }

Fix:
converterSupplier = getApplication ( ) . getApplicationSettings ( ) . getConverterLocatorFactory ( ) . newConverterLocator ( ) ;