diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java b/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java index 8da622add2d4..005759808737 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java @@ -1163,7 +1163,16 @@ public BufferedReader getReader() throws IOException { ServletInputStream in = getInputStream(); _readerEncoding = encoding; - _reader = new BufferedReader(new InputStreamReader(in, encoding)); + _reader = new BufferedReader(new InputStreamReader(in, encoding)) + { + @Override + public void close() throws IOException + { + // Do not call super to avoid marking this reader as closed, + // but do close the ServletInputStream that can be reopened. + in.close(); + } + }; } else if (_channel.isExpecting100Continue()) {