Buggy code:
public class MockHttpServletRequest implements HttpServletRequest { 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 setPath ( final String path ) { } public void setRequestToBookmarkablePage ( final Page page , final Map params ) { } public void setRequestToComponent ( final Component component ) { } public void setRequestToFormComponent ( final Form form , final Map values ) { setRequestToComponent ( form ) ; form . visitChildren ( new Component . IVisitor ( ) { public Object component ( final Component component ) { if ( component instanceof FormComponent ) { String value = ( ( String ) ( values . get ( component ) ) ) ; if ( value != null ) { <START_BUG> parameters . put ( component . getPath ( ) , values . get ( component ) ) ; <END_BUG> } } return CONTINUE_TRAVERSAL ; } } ) ; } public void setRequestToRedirectString ( final String redirect ) { } private void setDefaultHeaders ( ) { } }

Fix:
parameters . put ( ( ( FormComponent ) ( component ) ) . getInputName ( ) , values . get ( component ) ) ;