Buggy code:
public class MockHttpServletRequest implements HttpServletRequest { private static final Log log = LogFactory . getLog ( MockHttpServletRequest . class ) ; private final Application application ; private final ValueMap attributes = new ValueMap ( ) ; private String authType ; private String characterEncoding ; private final ServletContext context ; private final List cookies = new ArrayList ( ) ; private final ValueMap headers = new ValueMap ( ) ; private String method ; private final ValueMap parameters = new ValueMap ( ) ; private String path ; private final HttpSession session ; public MockHttpServletRequest ( final Application application , final HttpSession session , final ServletContext context ) { } public void addCookie ( final Cookie cookie ) { } public void addHeader ( String name , String value ) { } public Object getAttribute ( final String name ) { } public Enumeration getAttributeNames ( ) { } public String getAuthType ( ) { } public String getCharacterEncoding ( ) { } public int getContentLength ( ) { } public String getContentType ( ) { } public String getContextPath ( ) { } public Cookie [ ] getCookies ( ) { } public long getDateHeader ( final String name ) throws IllegalArgumentException { } public String getHeader ( final String name ) { } public Enumeration getHeaderNames ( ) { } public Enumeration getHeaders ( final String name ) { } public ServletInputStream getInputStream ( ) throws IOException { } public int getIntHeader ( final String name ) { } public Locale getLocale ( ) { } public Enumeration getLocales ( ) { } public String getMethod ( ) { } public String getParameter ( final String name ) { } public Map getParameterMap ( ) { } public Enumeration getParameterNames ( ) { } public String [ ] getParameterValues ( final String name ) { } public String getPathInfo ( ) { } public String getPathTranslated ( ) { } public String getProtocol ( ) { } public String getQueryString ( ) { } public BufferedReader getReader ( ) throws IOException { } public String getRealPath ( String name ) { } public String getRemoteAddr ( ) { } public String getRemoteHost ( ) { } public String getRemoteUser ( ) { } public RequestDispatcher getRequestDispatcher ( String name ) { } public String getRequestedSessionId ( ) { } public String getRequestURI ( ) { } public StringBuffer getRequestURL ( ) { } public String getScheme ( ) { } public String getServerName ( ) { } public int getServerPort ( ) { } public String getServletPath ( ) { } public HttpSession getSession ( ) { } public HttpSession getSession ( boolean b ) { } public Principal getUserPrincipal ( ) { } public void initialize ( ) { } public boolean isRequestedSessionIdFromCookie ( ) { } public boolean isRequestedSessionIdFromUrl ( ) { } public boolean isRequestedSessionIdFromURL ( ) { } public boolean isRequestedSessionIdValid ( ) { } public boolean isSecure ( ) { } public boolean isUserInRole ( String name ) { } public void removeAttribute ( final String name ) { } public void setAttribute ( final String name , final Object o ) { } public void setAuthType ( final String authType ) { } public void setCharacterEncoding ( final String encoding ) throws UnsupportedEncodingException { } public void setCookies ( final Cookie [ ] theCookies ) { } public void setMethod ( final String method ) { } public void setParameter ( final String name , final String value ) { } public void setParameters ( final Map parameters ) { } public void setPath ( final String path ) { } public void setRequestToBookmarkablePage ( final Page page , final Map params ) { } public void setRequestToComponent ( final Component component ) { final PageMap pageMap = component . getPage ( ) . getPageMap ( ) ; final String pageMapName = ( pageMap . isDefault ( ) ) ? "" : pageMap . getName ( ) ; if ( component instanceof BookmarkablePageLink ) { final Class clazz = ( ( BookmarkablePageLink ) ( component ) ) . getPageClass ( ) ; parameters . put ( BOOKMARKABLE_PAGE_PARAMETER_NAME , ( ( pageMapName + ':' ) + ( clazz . getName ( ) ) ) ) ; } else { int version = component . getPage ( ) . getCurrentVersionNumber ( ) ; Class clazz = null ; if ( component instanceof IRedirectListener ) { clazz = IRedirectListener . class ; } else if ( component instanceof IResourceListener ) { clazz = IResourceListener . class ; } else if ( component instanceof IFormSubmitListener ) { clazz = IFormSubmitListener . class ; } else if ( component instanceof ILinkListener ) { clazz = ILinkListener . class ; } else if ( component instanceof IOnChangeListener ) { clazz = IOnChangeListener . class ; } <START_BUG> parameters . put ( INTERFACE_PARAMETER_NAME , ( ( ( ( ( ( pageMapName + ':' ) + ( component . getPath ( ) ) ) + ':' ) + ( version == 0 ? "" : "" + version ) ) + ':' ) + ( Classes . name ( clazz ) ) ) ) ; <END_BUG> } } public void setRequestToFormComponent ( final Form form , final Map values ) { } public void setRequestToRedirectString ( final String redirect ) { } private void setDefaultHeaders ( ) { } }

Fix:
parameters . put ( INTERFACE_PARAMETER_NAME , ( ( ( ( ( ( pageMapName + ':' ) + ( component . getPath ( ) ) ) + ':' ) + ( version == 0 ? "" : "" + version ) ) + ':' ) + ( Classes . simpleName ( clazz ) ) ) ) ;