You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martin Grigorov (JIRA)" <ji...@apache.org> on 2016/02/05 22:15:39 UTC

[jira] [Commented] (WICKET-6092) MockHttpServletResponse causes AbstractMethodError during unit tests

    [ https://issues.apache.org/jira/browse/WICKET-6092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15135012#comment-15135012 ] 

Martin Grigorov commented on WICKET-6092:
-----------------------------------------

Hm.
I don't see why such error is thrown. It is perfectly valid to return more specific type in a specialization class.
Could you please provide a test case that fails?

The problem is that this change will break API, and some applications which already use this wrong API will be broken with next release of 6.x/7.x.

> MockHttpServletResponse causes AbstractMethodError during unit tests
> --------------------------------------------------------------------
>
>                 Key: WICKET-6092
>                 URL: https://issues.apache.org/jira/browse/WICKET-6092
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 6.21.0, 7.2.0
>            Reporter: Jeremy Sss
>            Assignee: Martin Grigorov
>            Priority: Minor
>
> As early as Wicket 6.x the Wicket documentation has specified that it supports Java's Servlet API v2.5 or newer (https://wicket.apache.org/start/wicket-6.x.html#servlet-api). Java's Servlet API v3.x specifies that classes who implement the HttpServletResponse interface must implement the getHeaderNames() method which returns the type Collection<String> (http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletResponseWrapper.html#getHeaderNames--). While preforming unit tests using WicketTester, Wicket helpfully uses the MockHttpServletResponse class which defines a getHeaderNames() method that returns type Set<String> (https://ci.apache.org/projects/wicket/apidocs/7.x/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.html#getHeaderNames()). 
> While running unit tests for code that makes use of the getHeaderNames() method, an AbstractMethodError is thrown due to the incorrect method signature. Wicket's MockHttpServletResponse should implement and override the getHeaderNames() method with the same signature as defined in HttpServletResponse.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)