diff options
author | Greg Wilkins | 2013-05-31 08:07:01 +0000 |
---|---|---|
committer | Greg Wilkins | 2013-05-31 08:07:01 +0000 |
commit | 0e11c8230712c2ce2206fc30f9606d640a231c0d (patch) | |
tree | b52e29a8ed7f1768876d5f6ddd03bdd6ff265acd | |
parent | 842309e656f8ca6e99a523ddbf98542fcab9ac47 (diff) | |
download | org.eclipse.jetty.project-0e11c8230712c2ce2206fc30f9606d640a231c0d.tar.gz org.eclipse.jetty.project-0e11c8230712c2ce2206fc30f9606d640a231c0d.tar.xz org.eclipse.jetty.project-0e11c8230712c2ce2206fc30f9606d640a231c0d.zip |
fixed merge
4 files changed, 51 insertions, 13 deletions
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java b/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java index 242c3c607a..2ba9e04738 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java @@ -613,20 +613,19 @@ public class Response implements HttpServletResponse return; } - if (HttpHeaders.CONTENT_TYPE.equalsIgnoreCase(name)) + if (HttpHeader.CONTENT_TYPE.is(name)) { setContentType(value); return; } - _fields.add(name, value); if (HttpHeader.CONTENT_LENGTH.is(name)) { - if (value == null) - _contentLength = -1l; - else - _contentLength = Long.parseLong(value); + setHeader(name,value); + return; } + + _fields.add(name, value); } @Override diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java index 6a56ab672f..b5855333a0 100644 --- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java +++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java @@ -739,7 +739,7 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory r.reset(true); r.setStatus(HttpServletResponse.SC_NOT_MODIFIED); if (_etags) - r.getHttpFields().add(HttpHeaders.ETAG_BUFFER,content.getETag()); + r.getHttpFields().add(HttpHeader.ETAG,content.getETag()); r.flushBuffer(); return false; } @@ -754,7 +754,7 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory r.reset(true); r.setStatus(HttpServletResponse.SC_NOT_MODIFIED); if (_etags) - r.getHttpFields().add(HttpHeaders.ETAG_BUFFER,content.getETag()); + r.getHttpFields().add(HttpHeader.ETAG,content.getETag()); r.flushBuffer(); return false; } diff --git a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/GzipFilterDefaultTest.java b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/GzipFilterDefaultTest.java index c496f0563d..1aaa301097 100644 --- a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/GzipFilterDefaultTest.java +++ b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/GzipFilterDefaultTest.java @@ -289,8 +289,8 @@ public class GzipFilterDefaultTest try { tester.start(); - HttpTester http = tester.assertIsResponseGzipCompressed("GET","file.txt",System.currentTimeMillis()-4000); - Assert.assertEquals("Accept-Encoding",http.getHeader("Vary")); + HttpTester.Response http = tester.assertIsResponseGzipCompressed("GET","file.txt",System.currentTimeMillis()-4000); + Assert.assertEquals("Accept-Encoding",http.get("Vary")); } finally { @@ -315,7 +315,7 @@ public class GzipFilterDefaultTest try { tester.start(); - HttpTester http = tester.assertIsResponseNotModified("GET","file.txt",System.currentTimeMillis()+4000); + tester.assertIsResponseNotModified("GET","file.txt",System.currentTimeMillis()+4000); } finally { diff --git a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/gzip/GzipTester.java b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/gzip/GzipTester.java index 177af43474..3cf181a5ee 100644 --- a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/gzip/GzipTester.java +++ b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/gzip/GzipTester.java @@ -47,6 +47,8 @@ import javax.servlet.DispatcherType; import javax.servlet.Servlet; import javax.servlet.http.HttpServletResponse; +import org.eclipse.jetty.http.HttpFields; +import org.eclipse.jetty.http.HttpHeader; import org.eclipse.jetty.http.HttpTester; import org.eclipse.jetty.servlet.FilterHolder; import org.eclipse.jetty.servlet.ServletHolder; @@ -77,11 +79,21 @@ public class GzipTester public HttpTester.Response assertIsResponseGzipCompressed(String method, String filename) throws Exception { - return assertIsResponseGzipCompressed(method,filename,filename); + return assertIsResponseGzipCompressed(method,filename,filename,-1); + } + + public HttpTester.Response assertIsResponseGzipCompressed(String method, String filename, long ifmodifiedsince) throws Exception + { + return assertIsResponseGzipCompressed(method,filename,filename,ifmodifiedsince); } public HttpTester.Response assertIsResponseGzipCompressed(String method, String requestedFilename, String serverFilename) throws Exception { + return assertIsResponseGzipCompressed(method,requestedFilename,serverFilename,-1); + } + + public HttpTester.Response assertIsResponseGzipCompressed(String method, String requestedFilename, String serverFilename, long ifmodifiedsince) throws Exception + { // System.err.printf("[GzipTester] requesting /context/%s%n",requestedFilename); HttpTester.Request request = HttpTester.newRequest(); HttpTester.Response response; @@ -90,13 +102,15 @@ public class GzipTester request.setVersion("HTTP/1.0"); request.setHeader("Host","tester"); request.setHeader("Accept-Encoding",compressionType); + if (ifmodifiedsince>0) + request.setHeader(HttpHeader.IF_MODIFIED_SINCE.asString(),HttpFields.formatDate(ifmodifiedsince)); if (this.userAgent != null) request.setHeader("User-Agent", this.userAgent); request.setURI("/context/" + requestedFilename); // Issue the request response = HttpTester.parseResponse(tester.getResponses(request.generate())); - + // Assert the response headers // Assert.assertThat("Response.status",response.getStatus(),is(HttpServletResponse.SC_OK)); Assert.assertThat("Response.header[Content-Length]",response.get("Content-Length"),notNullValue()); @@ -143,6 +157,31 @@ public class GzipTester return response; } + + public HttpTester.Response assertIsResponseNotModified(String method, String requestedFilename, long ifmodifiedsince) throws Exception + { // System.err.printf("[GzipTester] requesting /context/%s%n",requestedFilename); + HttpTester.Request request = HttpTester.newRequest(); + HttpTester.Response response; + + request.setMethod(method); + request.setVersion("HTTP/1.0"); + request.setHeader("Host","tester"); + request.setHeader("Accept-Encoding",compressionType); + if (ifmodifiedsince>0) + request.setHeader(HttpHeader.IF_MODIFIED_SINCE.asString(),HttpFields.formatDate(ifmodifiedsince)); + if (this.userAgent != null) + request.setHeader("User-Agent", this.userAgent); + request.setURI("/context/" + requestedFilename); + + // Issue the request + response = HttpTester.parseResponse(tester.getResponses(request.generate())); + + Assert.assertThat(response.getStatus(),Matchers.equalTo(304)); + Assert.assertThat(response.get("ETag"),Matchers.startsWith("W/")); + + return response; + } + /** * Makes sure that the response contains an unfiltered file contents. * <p> |