diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/DefaultHttpHeaders.java b/codec-http/src/main/java/io/netty/handler/codec/http/DefaultHttpHeaders.java index e6d0b01f39..714e030331 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/DefaultHttpHeaders.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/DefaultHttpHeaders.java @@ -21,13 +21,13 @@ import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.NoSuchElementException; import java.util.Set; -import java.util.TreeSet; public class DefaultHttpHeaders extends HttpHeaders { @@ -327,9 +327,7 @@ public class DefaultHttpHeaders extends HttpHeaders { @Override public Set names() { - - Set names = new TreeSet(String.CASE_INSENSITIVE_ORDER); - + Set names = new LinkedHashSet(); HeaderEntry e = head.after; while (e != head) { names.add(e.getKey()); diff --git a/codec-http/src/main/java/io/netty/handler/codec/http/HttpHeaders.java b/codec-http/src/main/java/io/netty/handler/codec/http/HttpHeaders.java index 261e8d874c..dd4b5a5a54 100644 --- a/codec-http/src/main/java/io/netty/handler/codec/http/HttpHeaders.java +++ b/codec-http/src/main/java/io/netty/handler/codec/http/HttpHeaders.java @@ -27,8 +27,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; -import static io.netty.handler.codec.http.HttpConstants.CR; -import static io.netty.handler.codec.http.HttpConstants.LF; +import static io.netty.handler.codec.http.HttpConstants.*; /** @@ -1289,10 +1288,9 @@ public abstract class HttpHeaders implements Iterable> public abstract List getAll(CharSequence name); /** - * Returns the all headers that this message contains. - * - * @return A {@link List} of the header name-value entries, which will be - * empty if no pairs are found + * Returns a new {@link List} that contains all headers in this object. Note that modifying the + * returned {@link List} will not affect the state of this object. If you intend to enumerate over the header + * entries only, use {@link #iterator()} instead, which has much less overhead. */ public abstract List> entries(); @@ -1310,9 +1308,9 @@ public abstract class HttpHeaders implements Iterable> public abstract boolean isEmpty(); /** - * Gets a {@link Set} of all header names that this message contains - * - * @return A {@link Set} of all header names + * Returns a new {@link Set} that contains the names of all headers in this object. Note that modifying the + * returned {@link Set} will not affect the state of this object. If you intend to enumerate over the header + * entries only, use {@link #iterator()} instead, which has much less overhead. */ public abstract Set names();