diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/EmptyHttpFields.java b/jetty-http/src/main/java/org/eclipse/jetty/http/EmptyHttpFields.java new file mode 100644 index 000000000000..001287137498 --- /dev/null +++ b/jetty-http/src/main/java/org/eclipse/jetty/http/EmptyHttpFields.java @@ -0,0 +1,45 @@ +// +// ======================================================================== +// Copyright (c) 1995 Mort Bay Consulting Pty Ltd and others. +// +// This program and the accompanying materials are made available under the +// terms of the Eclipse Public License v. 2.0 which is available at +// https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0 +// which is available at https://www.apache.org/licenses/LICENSE-2.0. +// +// SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 +// ======================================================================== +// + +package org.eclipse.jetty.http; + +import java.util.Collections; +import java.util.Iterator; +import java.util.function.Consumer; +import java.util.stream.Stream; + +class EmptyHttpFields extends HttpFields.Immutable +{ + public EmptyHttpFields() + { + super(new HttpField[0]); + } + + @Override + public Iterator iterator() + { + return Collections.emptyIterator(); + } + + @Override + public void forEach(Consumer action) + { + // no-op + } + + @Override + public Stream stream() + { + return Stream.empty(); + } +} diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpFields.java b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpFields.java index 20c0512fd0ed..915750bfaf41 100644 --- a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpFields.java +++ b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpFields.java @@ -38,7 +38,10 @@ */ public interface HttpFields extends Iterable { - HttpFields EMPTY = build().asImmutable(); + /** + *

A constant for an immutable and empty {@link HttpFields}.

+ */ + HttpFields EMPTY = new EmptyHttpFields(); static Mutable build() {