You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2010/03/03 20:00:11 UTC

svn commit: r918631 - in /httpcomponents/httpcore/trunk/httpcore/src: main/java/org/apache/http/message/HeaderGroup.java test/java/org/apache/http/message/TestHeaderGroup.java

Author: olegk
Date: Wed Mar  3 19:00:11 2010
New Revision: 918631

URL: http://svn.apache.org/viewvc?rev=918631&view=rev
Log:
Made header list final; added test cases for header removal with iterator

Modified:
    httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/message/HeaderGroup.java
    httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/message/TestHeaderGroup.java

Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/message/HeaderGroup.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/message/HeaderGroup.java?rev=918631&r1=918630&r2=918631&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/message/HeaderGroup.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/message/HeaderGroup.java Wed Mar  3 19:00:11 2010
@@ -46,7 +46,7 @@
 public class HeaderGroup implements Cloneable {
 
     /** The list of headers for this group, in the order in which they were added */
-    private List headers;
+    private final List headers;
 
     /**
      * Constructor for HeaderGroup.
@@ -274,6 +274,8 @@
      * Returns a copy of this object
      * 
      * @return copy of this object
+     * 
+     * @since 4.0
      */
     public HeaderGroup copy() {
         HeaderGroup clone = new HeaderGroup();
@@ -283,7 +285,8 @@
     
     public Object clone() throws CloneNotSupportedException {
         HeaderGroup clone = (HeaderGroup) super.clone();
-        clone.headers = new ArrayList(this.headers);
+        clone.headers.clear();
+        clone.headers.addAll(this.headers);
         return clone;
     }
     

Modified: httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/message/TestHeaderGroup.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/message/TestHeaderGroup.java?rev=918631&r1=918630&r2=918631&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/message/TestHeaderGroup.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/test/java/org/apache/http/message/TestHeaderGroup.java Wed Mar  3 19:00:11 2010
@@ -150,6 +150,27 @@
         assertFalse(i.hasNext());
     }
     
+    public void testHeaderRemove() {
+        HeaderGroup headergroup = new HeaderGroup();
+        Header header1 = new BasicHeader("name", "value1");
+        Header header2 = new BasicHeader("name", "value2");
+        Header header3 = new BasicHeader("name", "value3");
+        headergroup.setHeaders(new Header[] { header1, header2, header3 });
+        Iterator i = headergroup.iterator();
+        assertNotNull(i);
+        assertTrue(i.hasNext());
+        i.next();
+        assertTrue(i.hasNext());
+        i.next();
+        i.remove();
+        assertEquals(2, headergroup.getAllHeaders().length);
+        assertTrue(i.hasNext());
+        i.next();
+        i.remove();
+        assertEquals(1, headergroup.getAllHeaders().length);
+        assertFalse(i.hasNext());
+    }
+    
     public void testCloning() throws Exception {
         HeaderGroup orig = new HeaderGroup();
         Header header1 = new BasicHeader("name", "value1");