Author: mgrigorov
Date: Tue Dec 13 14:04:34 2011
New Revision: 1213698

URL: http://svn.apache.org/viewvc?rev=1213698&view=rev
Log:
WICKET-4292
MockHttpServletResponse.addCookie(Cookie) adds duplicate cookies


Added:
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponseTest.java
      - copied unchanged from r1213694, 
wicket/branches/wicket-1.5.x/wicket-core/src/test/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponseTest.java
Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java?rev=1213698&r1=1213697&r2=1213698&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
 Tue Dec 13 14:04:34 2011
@@ -27,6 +27,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
 import java.util.GregorianCalendar;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Set;
@@ -102,7 +103,18 @@ public class MockHttpServletResponse imp
        public void addCookie(final Cookie cookie)
        {
                // remove any potential duplicates
-               cookies.remove(cookie);
+               // see http://www.ietf.org/rfc/rfc2109.txt, p.4.3.3
+               Iterator<Cookie> iterator = cookies.iterator();
+               while (iterator.hasNext())
+               {
+                       Cookie old = iterator.next();
+                       if (cookie.getName().equals(old.getName()) &&
+                               ((cookie.getPath() == null && old.getPath() == 
null) || (cookie.getPath().equals(old.getPath()))) &&
+                               ((cookie.getDomain() == null && old.getDomain() 
== null) || (cookie.getDomain().equals(old.getDomain()))))
+                       {
+                               iterator.remove();
+                       }
+               }
                cookies.add(cookie);
        }
 


Reply via email to