From 9f2a641dc075f4587068f2d43bf33521a3ddc488 Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Wed, 29 May 2013 10:21:53 +1000 Subject: [PATCH 1/8] 409133 Empty causes StackOverflowError --- .../org/eclipse/jetty/webapp/StandardDescriptorProcessor.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/StandardDescriptorProcessor.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/StandardDescriptorProcessor.java index 5fc3be0af72..1b0089061d9 100644 --- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/StandardDescriptorProcessor.java +++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/StandardDescriptorProcessor.java @@ -750,7 +750,8 @@ public class StandardDescriptorProcessor extends IterativeDescriptorProcessor String welcome = indexNode.toString(false, true); //Servlet Spec 3.0 p. 74 welcome files are additive - context.setWelcomeFiles((String[])LazyList.addToArray(context.getWelcomeFiles(),welcome,String.class)); + if (welcome != null && welcome.trim().length() > 0) + context.setWelcomeFiles((String[])LazyList.addToArray(context.getWelcomeFiles(),welcome,String.class)); } } From c961d656979a677a685715b8b4eeef39f3d8a3a9 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Thu, 30 May 2013 09:09:47 +1000 Subject: [PATCH 2/8] 398467 Servlet 3.1 Non Blocking IO completed removal of HttpOutput.closeIfAllContentWritten --- .../jetty/server/EncodingHttpWriter.java | 10 ++++++--- .../org/eclipse/jetty/server/HttpOutput.java | 21 +++++++++++-------- .../jetty/server/Iso88591HttpWriter.java | 5 ++++- .../eclipse/jetty/server/Utf8HttpWriter.java | 7 +++++-- 4 files changed, 28 insertions(+), 15 deletions(-) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/EncodingHttpWriter.java b/jetty-server/src/main/java/org/eclipse/jetty/server/EncodingHttpWriter.java index 6abd28b06e3..7725a342eb6 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/EncodingHttpWriter.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/EncodingHttpWriter.java @@ -48,9 +48,13 @@ public class EncodingHttpWriter extends HttpWriter @Override public void write (char[] s,int offset, int length) throws IOException { + HttpOutput out = _out; if (length==0) - _out.closeIfAllContentWritten(); - + { + if (_out.isAllContentWritten()) + close(); + } + while (length > 0) { _bytes.reset(); @@ -58,7 +62,7 @@ public class EncodingHttpWriter extends HttpWriter _converter.write(s, offset, chars); _converter.flush(); - _bytes.writeTo(_out); + _bytes.writeTo(out); length-=chars; offset+=chars; } diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java index c3a1faeb066..6ff6ae9ee32 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java @@ -23,7 +23,6 @@ import java.io.IOException; import java.io.InputStream; import java.nio.ByteBuffer; import java.nio.channels.ReadableByteChannel; -import java.util.concurrent.TimeoutException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletOutputStream; @@ -154,15 +153,15 @@ public class HttpOutput extends ServletOutputStream _channel.write(BufferUtil.EMPTY_BUFFER, false); } - public boolean closeIfAllContentWritten() throws IOException + public boolean isAllContentWritten() { Response response=_channel.getResponse(); - if (response.isAllContentWritten(_written)) - { - response.closeOutput(); - return true; - } - return false; + return response.isAllContentWritten(_written); + } + + public void closeOutput() throws IOException + { + _channel.getResponse().closeOutput(); } @Override @@ -231,12 +230,16 @@ public class HttpOutput extends ServletOutputStream BufferUtil.append(_aggregate, (byte)b); _written++; + boolean complete=_channel.getResponse().isAllContentWritten(_written); + // Check if all written or full - if (!closeIfAllContentWritten() && BufferUtil.isFull(_aggregate)) + if (complete || BufferUtil.isFull(_aggregate)) { BlockingCallback callback = _channel.getWriteBlockingCallback(); _channel.write(_aggregate, false, callback); callback.block(); + if (complete) + closed(); } } diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/Iso88591HttpWriter.java b/jetty-server/src/main/java/org/eclipse/jetty/server/Iso88591HttpWriter.java index 27802cfb176..83335c4dc38 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/Iso88591HttpWriter.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/Iso88591HttpWriter.java @@ -36,7 +36,10 @@ public class Iso88591HttpWriter extends HttpWriter { HttpOutput out = _out; if (length==0) - out.closeIfAllContentWritten(); + { + if (_out.isAllContentWritten()) + close(); + } if (length==1) { diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/Utf8HttpWriter.java b/jetty-server/src/main/java/org/eclipse/jetty/server/Utf8HttpWriter.java index 059ad1947f2..251e3d0fd4c 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/Utf8HttpWriter.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/Utf8HttpWriter.java @@ -44,8 +44,11 @@ public class Utf8HttpWriter extends HttpWriter { HttpOutput out = _out; if (length==0) - out.closeIfAllContentWritten(); - + { + if (_out.isAllContentWritten()) + close(); + } + while (length > 0) { _bytes.reset(); From ecbb5328972b68da4a16c9af5650bb53adf726b9 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Thu, 30 May 2013 09:49:50 +1000 Subject: [PATCH 3/8] 408909 GzipFilter setting of headers when reset and/or not compressed defer commit until aggregate buffer overflows --- .../http/gzip/AbstractCompressedStream.java | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/gzip/AbstractCompressedStream.java b/jetty-http/src/main/java/org/eclipse/jetty/http/gzip/AbstractCompressedStream.java index e1c805e8b20..4ff08a43eed 100644 --- a/jetty-http/src/main/java/org/eclipse/jetty/http/gzip/AbstractCompressedStream.java +++ b/jetty-http/src/main/java/org/eclipse/jetty/http/gzip/AbstractCompressedStream.java @@ -307,22 +307,38 @@ public abstract class AbstractCompressedStream extends ServletOutputStream throw new IOException("CLOSED"); if (_out == null) - { - long length=_wrapper.getContentLength(); - if (_response.isCommitted() || (length >= 0 && length < _wrapper.getMinCompressSize())) - doNotCompress(false); - else if (lengthToWrite > _wrapper.getMinCompressSize()) - doCompress(); + { + // If this first write is larger than buffer size, then we are committing now + if (lengthToWrite>_wrapper.getBufferSize()) + { + // if we know this is all the content and it is less than minimum, then do not compress, otherwise do compress + long length=_wrapper.getContentLength(); + if (length>=0 && length<_wrapper.getMinCompressSize()) + doNotCompress(false); // Not compressing by size, so no vary on request headers + else + doCompress(); + } else + { + // start aggregating writes into a buffered output stream _out = _bOut = new ByteArrayOutputStream2(_wrapper.getBufferSize()); + } } - else if (_bOut != null) + // else are we aggregating writes? + else if (_bOut !=null) { - long length=_wrapper.getContentLength(); - if (_response.isCommitted() || (length >= 0 && length < _wrapper.getMinCompressSize())) - doNotCompress(false); - else if (lengthToWrite >= (_bOut.getBuf().length - _bOut.getCount())) - doCompress(); + // We are aggregating into the buffered output stream. + + // If this write fills the buffer, then we are committing + if (lengthToWrite>=(_bOut.getBuf().length - _bOut.getCount())) + { + // if we know this is all the content and it is less than minimum, then do not compress, otherwise do compress + long length=_wrapper.getContentLength(); + if (length>=0 && length<_wrapper.getMinCompressSize()) + doNotCompress(false); // Not compressing by size, so no vary on request headers + else + doCompress(); + } } } From af02e9b16d5dcd55df85622887b3443660e504f9 Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Thu, 30 May 2013 10:51:07 +1000 Subject: [PATCH 4/8] Update to version to 8.1.12-SNAPSHOT after last release --- example-async-rest/async-rest-jar/pom.xml | 2 +- example-async-rest/async-rest-webapp/pom.xml | 2 +- example-async-rest/pom.xml | 2 +- example-jetty-embedded/pom.xml | 2 +- jetty-aggregate/jetty-all-server/pom.xml | 2 +- jetty-aggregate/jetty-all/pom.xml | 2 +- jetty-aggregate/jetty-client/pom.xml | 2 +- jetty-aggregate/jetty-plus/pom.xml | 2 +- jetty-aggregate/jetty-server/pom.xml | 2 +- jetty-aggregate/jetty-servlet/pom.xml | 2 +- jetty-aggregate/jetty-webapp/pom.xml | 2 +- jetty-aggregate/jetty-websocket/pom.xml | 2 +- jetty-aggregate/pom.xml | 2 +- jetty-ajp/pom.xml | 2 +- jetty-annotations/pom.xml | 2 +- jetty-client/pom.xml | 2 +- jetty-continuation/pom.xml | 2 +- jetty-deploy/pom.xml | 2 +- jetty-distribution/pom.xml | 2 +- jetty-http-spi/pom.xml | 2 +- jetty-http/pom.xml | 2 +- jetty-io/pom.xml | 2 +- jetty-jaspi/pom.xml | 2 +- jetty-jmx/pom.xml | 2 +- jetty-jndi/pom.xml | 2 +- jetty-jsp/pom.xml | 2 +- jetty-monitor/pom.xml | 2 +- jetty-nested/pom.xml | 2 +- jetty-nosql/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-jsp/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot-warurl/pom.xml | 2 +- jetty-osgi/jetty-osgi-boot/pom.xml | 2 +- jetty-osgi/jetty-osgi-httpservice/pom.xml | 2 +- jetty-osgi/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-context/pom.xml | 2 +- jetty-osgi/test-jetty-osgi-webapp/pom.xml | 2 +- jetty-osgi/test-jetty-osgi/pom.xml | 2 +- jetty-overlay-deployer/pom.xml | 2 +- jetty-plus/pom.xml | 2 +- jetty-policy/pom.xml | 2 +- jetty-rewrite/pom.xml | 2 +- jetty-security/pom.xml | 2 +- jetty-server/pom.xml | 2 +- jetty-servlet/pom.xml | 2 +- jetty-servlets/pom.xml | 2 +- jetty-spdy/pom.xml | 2 +- jetty-spdy/spdy-core/pom.xml | 2 +- jetty-spdy/spdy-jetty-http-webapp/pom.xml | 2 +- jetty-spdy/spdy-jetty-http/pom.xml | 2 +- jetty-spdy/spdy-jetty/pom.xml | 2 +- jetty-start/pom.xml | 2 +- jetty-util/pom.xml | 2 +- jetty-webapp/pom.xml | 2 +- jetty-websocket/pom.xml | 2 +- jetty-xml/pom.xml | 2 +- pom.xml | 2 +- test-continuation/pom.xml | 2 +- test-jetty-nested/pom.xml | 2 +- test-jetty-servlet/pom.xml | 2 +- test-jetty-webapp/pom.xml | 2 +- tests/pom.xml | 2 +- tests/test-integration/pom.xml | 2 +- tests/test-loginservice/pom.xml | 2 +- tests/test-sessions/pom.xml | 2 +- tests/test-sessions/test-hash-sessions/pom.xml | 2 +- tests/test-sessions/test-jdbc-sessions/pom.xml | 2 +- tests/test-sessions/test-mongodb-sessions/pom.xml | 2 +- tests/test-sessions/test-sessions-common/pom.xml | 2 +- tests/test-webapps/pom.xml | 2 +- tests/test-webapps/test-webapp-rfc2616/pom.xml | 2 +- 70 files changed, 70 insertions(+), 70 deletions(-) diff --git a/example-async-rest/async-rest-jar/pom.xml b/example-async-rest/async-rest-jar/pom.xml index b69b81e5c27..442669b4770 100644 --- a/example-async-rest/async-rest-jar/pom.xml +++ b/example-async-rest/async-rest-jar/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/example-async-rest/async-rest-webapp/pom.xml b/example-async-rest/async-rest-webapp/pom.xml index 5e8feae3377..428e919eaf0 100644 --- a/example-async-rest/async-rest-webapp/pom.xml +++ b/example-async-rest/async-rest-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty example-async-rest - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 org.eclipse.jetty.example-async-rest diff --git a/example-async-rest/pom.xml b/example-async-rest/pom.xml index 842565c3d53..a6141e85385 100644 --- a/example-async-rest/pom.xml +++ b/example-async-rest/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 org.eclipse.jetty diff --git a/example-jetty-embedded/pom.xml b/example-jetty-embedded/pom.xml index 91837c4bca2..7d97e4d7b5a 100644 --- a/example-jetty-embedded/pom.xml +++ b/example-jetty-embedded/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 example-jetty-embedded diff --git a/jetty-aggregate/jetty-all-server/pom.xml b/jetty-aggregate/jetty-all-server/pom.xml index d1abaf612c3..ba069e99443 100644 --- a/jetty-aggregate/jetty-all-server/pom.xml +++ b/jetty-aggregate/jetty-all-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.aggregate jetty-aggregate-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-all-server diff --git a/jetty-aggregate/jetty-all/pom.xml b/jetty-aggregate/jetty-all/pom.xml index f2e02c4f1b7..b7e6dc49341 100644 --- a/jetty-aggregate/jetty-all/pom.xml +++ b/jetty-aggregate/jetty-all/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.aggregate jetty-aggregate-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-all diff --git a/jetty-aggregate/jetty-client/pom.xml b/jetty-aggregate/jetty-client/pom.xml index f8ac709f22d..f1d3cdb9ab8 100644 --- a/jetty-aggregate/jetty-client/pom.xml +++ b/jetty-aggregate/jetty-client/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.aggregate jetty-aggregate-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-client diff --git a/jetty-aggregate/jetty-plus/pom.xml b/jetty-aggregate/jetty-plus/pom.xml index 57d9186931d..dbde12da812 100644 --- a/jetty-aggregate/jetty-plus/pom.xml +++ b/jetty-aggregate/jetty-plus/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.aggregate jetty-aggregate-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-plus diff --git a/jetty-aggregate/jetty-server/pom.xml b/jetty-aggregate/jetty-server/pom.xml index ad04345e80a..24c157327ad 100644 --- a/jetty-aggregate/jetty-server/pom.xml +++ b/jetty-aggregate/jetty-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.aggregate jetty-aggregate-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-server diff --git a/jetty-aggregate/jetty-servlet/pom.xml b/jetty-aggregate/jetty-servlet/pom.xml index 58f4156410d..5a0c363ee7d 100644 --- a/jetty-aggregate/jetty-servlet/pom.xml +++ b/jetty-aggregate/jetty-servlet/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.aggregate jetty-aggregate-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-servlet diff --git a/jetty-aggregate/jetty-webapp/pom.xml b/jetty-aggregate/jetty-webapp/pom.xml index d5160fb86db..95688163a89 100644 --- a/jetty-aggregate/jetty-webapp/pom.xml +++ b/jetty-aggregate/jetty-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.aggregate jetty-aggregate-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-webapp diff --git a/jetty-aggregate/jetty-websocket/pom.xml b/jetty-aggregate/jetty-websocket/pom.xml index 2a814002101..7fc517e7d98 100644 --- a/jetty-aggregate/jetty-websocket/pom.xml +++ b/jetty-aggregate/jetty-websocket/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.aggregate jetty-aggregate-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-websocket diff --git a/jetty-aggregate/pom.xml b/jetty-aggregate/pom.xml index e041521cc89..b1b1d65ff32 100644 --- a/jetty-aggregate/pom.xml +++ b/jetty-aggregate/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT org.eclipse.jetty.aggregate jetty-aggregate-project diff --git a/jetty-ajp/pom.xml b/jetty-ajp/pom.xml index 8855adae285..c63631d29e9 100644 --- a/jetty-ajp/pom.xml +++ b/jetty-ajp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-ajp diff --git a/jetty-annotations/pom.xml b/jetty-annotations/pom.xml index 4b6d9620d22..f2abb23510b 100644 --- a/jetty-annotations/pom.xml +++ b/jetty-annotations/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-annotations diff --git a/jetty-client/pom.xml b/jetty-client/pom.xml index 622113acadd..25d51b1d8d4 100644 --- a/jetty-client/pom.xml +++ b/jetty-client/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 diff --git a/jetty-continuation/pom.xml b/jetty-continuation/pom.xml index 3a18474a816..0ce442dc914 100644 --- a/jetty-continuation/pom.xml +++ b/jetty-continuation/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-continuation diff --git a/jetty-deploy/pom.xml b/jetty-deploy/pom.xml index a11b6f9bdf4..46ad91ff5d8 100644 --- a/jetty-deploy/pom.xml +++ b/jetty-deploy/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-deploy diff --git a/jetty-distribution/pom.xml b/jetty-distribution/pom.xml index 3682886bf42..2f03b881c76 100644 --- a/jetty-distribution/pom.xml +++ b/jetty-distribution/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT jetty-distribution Jetty :: Distribution Assemblies diff --git a/jetty-http-spi/pom.xml b/jetty-http-spi/pom.xml index 3c3c6551ccc..be5e0e1c977 100644 --- a/jetty-http-spi/pom.xml +++ b/jetty-http-spi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-http-spi diff --git a/jetty-http/pom.xml b/jetty-http/pom.xml index 107b598c59d..3bf55e28758 100644 --- a/jetty-http/pom.xml +++ b/jetty-http/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-http diff --git a/jetty-io/pom.xml b/jetty-io/pom.xml index 2820210ab73..48aa615afc5 100644 --- a/jetty-io/pom.xml +++ b/jetty-io/pom.xml @@ -2,7 +2,7 @@ jetty-project org.eclipse.jetty - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-io diff --git a/jetty-jaspi/pom.xml b/jetty-jaspi/pom.xml index a4154528f4b..c1ffc619afc 100644 --- a/jetty-jaspi/pom.xml +++ b/jetty-jaspi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-jaspi diff --git a/jetty-jmx/pom.xml b/jetty-jmx/pom.xml index fd84e997618..865b4bf86aa 100644 --- a/jetty-jmx/pom.xml +++ b/jetty-jmx/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-jmx diff --git a/jetty-jndi/pom.xml b/jetty-jndi/pom.xml index d44a9e46a1a..4f3ab047747 100644 --- a/jetty-jndi/pom.xml +++ b/jetty-jndi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-jndi diff --git a/jetty-jsp/pom.xml b/jetty-jsp/pom.xml index c499decd108..6eb510bcd71 100644 --- a/jetty-jsp/pom.xml +++ b/jetty-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-jsp diff --git a/jetty-monitor/pom.xml b/jetty-monitor/pom.xml index 8f8fa319794..bb7b39c2f85 100644 --- a/jetty-monitor/pom.xml +++ b/jetty-monitor/pom.xml @@ -19,7 +19,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-monitor diff --git a/jetty-nested/pom.xml b/jetty-nested/pom.xml index 05e625145f7..93a23e3be54 100644 --- a/jetty-nested/pom.xml +++ b/jetty-nested/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT jetty-nested Jetty :: Nested diff --git a/jetty-nosql/pom.xml b/jetty-nosql/pom.xml index f916768f003..61c848a02cf 100644 --- a/jetty-nosql/pom.xml +++ b/jetty-nosql/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-nosql diff --git a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml index 231b2351d71..8ec23ab0e2f 100644 --- a/jetty-osgi/jetty-osgi-boot-jsp/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-jsp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml index 6b757f72e14..b557886e5d7 100644 --- a/jetty-osgi/jetty-osgi-boot-warurl/pom.xml +++ b/jetty-osgi/jetty-osgi-boot-warurl/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/jetty-osgi-boot/pom.xml b/jetty-osgi/jetty-osgi-boot/pom.xml index 691fd4944c0..5bd31658aa0 100644 --- a/jetty-osgi/jetty-osgi-boot/pom.xml +++ b/jetty-osgi/jetty-osgi-boot/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/jetty-osgi-httpservice/pom.xml b/jetty-osgi/jetty-osgi-httpservice/pom.xml index 2269986fc88..6fbb6536774 100644 --- a/jetty-osgi/jetty-osgi-httpservice/pom.xml +++ b/jetty-osgi/jetty-osgi-httpservice/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/pom.xml b/jetty-osgi/pom.xml index dd4c5ab5513..c71f24161c1 100644 --- a/jetty-osgi/pom.xml +++ b/jetty-osgi/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT ../pom.xml org.eclipse.jetty.osgi diff --git a/jetty-osgi/test-jetty-osgi-context/pom.xml b/jetty-osgi/test-jetty-osgi-context/pom.xml index 694edfb56bd..98048456ef0 100644 --- a/jetty-osgi/test-jetty-osgi-context/pom.xml +++ b/jetty-osgi/test-jetty-osgi-context/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/test-jetty-osgi-webapp/pom.xml b/jetty-osgi/test-jetty-osgi-webapp/pom.xml index f46746ec612..d94c50237ba 100644 --- a/jetty-osgi/test-jetty-osgi-webapp/pom.xml +++ b/jetty-osgi/test-jetty-osgi-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-osgi/test-jetty-osgi/pom.xml b/jetty-osgi/test-jetty-osgi/pom.xml index dfddd495705..72500e68ef2 100644 --- a/jetty-osgi/test-jetty-osgi/pom.xml +++ b/jetty-osgi/test-jetty-osgi/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty.osgi jetty-osgi-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT ../pom.xml 4.0.0 diff --git a/jetty-overlay-deployer/pom.xml b/jetty-overlay-deployer/pom.xml index e17ba3cf7f0..d0020d750c8 100644 --- a/jetty-overlay-deployer/pom.xml +++ b/jetty-overlay-deployer/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-overlay-deployer diff --git a/jetty-plus/pom.xml b/jetty-plus/pom.xml index 2ccd9f44904..ace5860d73b 100644 --- a/jetty-plus/pom.xml +++ b/jetty-plus/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-plus diff --git a/jetty-policy/pom.xml b/jetty-policy/pom.xml index ac8a6f4e960..2a5c77ef216 100644 --- a/jetty-policy/pom.xml +++ b/jetty-policy/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT jetty-policy Jetty :: Policy Tool diff --git a/jetty-rewrite/pom.xml b/jetty-rewrite/pom.xml index 6ba38cfd804..a0ac0ee186a 100644 --- a/jetty-rewrite/pom.xml +++ b/jetty-rewrite/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-rewrite diff --git a/jetty-security/pom.xml b/jetty-security/pom.xml index 2af89a16768..69d33c55040 100644 --- a/jetty-security/pom.xml +++ b/jetty-security/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-security diff --git a/jetty-server/pom.xml b/jetty-server/pom.xml index 362232efcba..daab6c48f4d 100644 --- a/jetty-server/pom.xml +++ b/jetty-server/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-server diff --git a/jetty-servlet/pom.xml b/jetty-servlet/pom.xml index c48589e9dee..919360453df 100644 --- a/jetty-servlet/pom.xml +++ b/jetty-servlet/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-servlet diff --git a/jetty-servlets/pom.xml b/jetty-servlets/pom.xml index 063e00aeb09..4081ff7f175 100644 --- a/jetty-servlets/pom.xml +++ b/jetty-servlets/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-servlets diff --git a/jetty-spdy/pom.xml b/jetty-spdy/pom.xml index bea1ad9be7a..f90dd5fd5b3 100644 --- a/jetty-spdy/pom.xml +++ b/jetty-spdy/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-core/pom.xml b/jetty-spdy/spdy-core/pom.xml index 45bc5678a95..a48cf745e40 100644 --- a/jetty-spdy/spdy-core/pom.xml +++ b/jetty-spdy/spdy-core/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 diff --git a/jetty-spdy/spdy-jetty-http-webapp/pom.xml b/jetty-spdy/spdy-jetty-http-webapp/pom.xml index 36613fc5aed..1389db13a7d 100644 --- a/jetty-spdy/spdy-jetty-http-webapp/pom.xml +++ b/jetty-spdy/spdy-jetty-http-webapp/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 spdy-jetty-http-webapp diff --git a/jetty-spdy/spdy-jetty-http/pom.xml b/jetty-spdy/spdy-jetty-http/pom.xml index 3a2d56a262a..dcd90ff5e78 100644 --- a/jetty-spdy/spdy-jetty-http/pom.xml +++ b/jetty-spdy/spdy-jetty-http/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 spdy-jetty-http diff --git a/jetty-spdy/spdy-jetty/pom.xml b/jetty-spdy/spdy-jetty/pom.xml index 697c83c5807..1584ae19422 100644 --- a/jetty-spdy/spdy-jetty/pom.xml +++ b/jetty-spdy/spdy-jetty/pom.xml @@ -3,7 +3,7 @@ org.eclipse.jetty.spdy spdy-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 spdy-jetty diff --git a/jetty-start/pom.xml b/jetty-start/pom.xml index 9b60a63ac5f..3bc5454bf18 100644 --- a/jetty-start/pom.xml +++ b/jetty-start/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-start diff --git a/jetty-util/pom.xml b/jetty-util/pom.xml index d40d70e580b..b37c2ddd0cf 100644 --- a/jetty-util/pom.xml +++ b/jetty-util/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-util diff --git a/jetty-webapp/pom.xml b/jetty-webapp/pom.xml index ebf48e419f1..4c6db1ae602 100644 --- a/jetty-webapp/pom.xml +++ b/jetty-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-webapp diff --git a/jetty-websocket/pom.xml b/jetty-websocket/pom.xml index 47fe3f64e4e..59eb77ee784 100644 --- a/jetty-websocket/pom.xml +++ b/jetty-websocket/pom.xml @@ -3,7 +3,7 @@ jetty-project org.eclipse.jetty - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 diff --git a/jetty-xml/pom.xml b/jetty-xml/pom.xml index 8e6f311eb4f..b288218c69e 100644 --- a/jetty-xml/pom.xml +++ b/jetty-xml/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 jetty-xml diff --git a/pom.xml b/pom.xml index e4209e5c254..9907225765b 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 20 jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT Jetty :: Project http://www.eclipse.org/jetty pom diff --git a/test-continuation/pom.xml b/test-continuation/pom.xml index ba8e63d93ec..a33fc603dac 100644 --- a/test-continuation/pom.xml +++ b/test-continuation/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 test-continuation diff --git a/test-jetty-nested/pom.xml b/test-jetty-nested/pom.xml index 93bc9947f80..9a28f3f02f1 100644 --- a/test-jetty-nested/pom.xml +++ b/test-jetty-nested/pom.xml @@ -4,7 +4,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT test-jetty-nested Jetty :: Nested Test diff --git a/test-jetty-servlet/pom.xml b/test-jetty-servlet/pom.xml index 6720a5e2e64..5ef7c9e5488 100644 --- a/test-jetty-servlet/pom.xml +++ b/test-jetty-servlet/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 test-jetty-servlet diff --git a/test-jetty-webapp/pom.xml b/test-jetty-webapp/pom.xml index 3d232881553..d5df9eb3af3 100644 --- a/test-jetty-webapp/pom.xml +++ b/test-jetty-webapp/pom.xml @@ -2,7 +2,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 test-jetty-webapp diff --git a/tests/pom.xml b/tests/pom.xml index d635b083a5b..2a7865ef466 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty jetty-project - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT org.eclipse.jetty.tests tests-parent diff --git a/tests/test-integration/pom.xml b/tests/test-integration/pom.xml index 3639db52c5a..089de4f7c7c 100644 --- a/tests/test-integration/pom.xml +++ b/tests/test-integration/pom.xml @@ -20,7 +20,7 @@ org.eclipse.jetty.tests tests-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT 4.0.0 test-integration diff --git a/tests/test-loginservice/pom.xml b/tests/test-loginservice/pom.xml index 3ee76c7800a..f3c7ac8c244 100644 --- a/tests/test-loginservice/pom.xml +++ b/tests/test-loginservice/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT test-loginservice Jetty Tests :: Login Service diff --git a/tests/test-sessions/pom.xml b/tests/test-sessions/pom.xml index 322f726a48d..add39f5cf2c 100644 --- a/tests/test-sessions/pom.xml +++ b/tests/test-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT test-sessions-parent Jetty Tests :: Sessions :: Parent diff --git a/tests/test-sessions/test-hash-sessions/pom.xml b/tests/test-sessions/test-hash-sessions/pom.xml index 524f5476640..ddfef203d01 100644 --- a/tests/test-sessions/test-hash-sessions/pom.xml +++ b/tests/test-sessions/test-hash-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT test-hash-sessions Jetty Tests :: Sessions :: Hash diff --git a/tests/test-sessions/test-jdbc-sessions/pom.xml b/tests/test-sessions/test-jdbc-sessions/pom.xml index 1bd3c4237f4..17cf4d85567 100644 --- a/tests/test-sessions/test-jdbc-sessions/pom.xml +++ b/tests/test-sessions/test-jdbc-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT test-jdbc-sessions Jetty Tests :: Sessions :: JDBC diff --git a/tests/test-sessions/test-mongodb-sessions/pom.xml b/tests/test-sessions/test-mongodb-sessions/pom.xml index d064433641e..a091ee1b71c 100644 --- a/tests/test-sessions/test-mongodb-sessions/pom.xml +++ b/tests/test-sessions/test-mongodb-sessions/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT test-mongodb-sessions Jetty Tests :: Sessions :: Mongo diff --git a/tests/test-sessions/test-sessions-common/pom.xml b/tests/test-sessions/test-sessions-common/pom.xml index e412755bdee..ce4f2e93fe0 100644 --- a/tests/test-sessions/test-sessions-common/pom.xml +++ b/tests/test-sessions/test-sessions-common/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-sessions-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT test-sessions-common Jetty Tests :: Sessions :: Common diff --git a/tests/test-webapps/pom.xml b/tests/test-webapps/pom.xml index 844730e9f55..72fea5e9074 100644 --- a/tests/test-webapps/pom.xml +++ b/tests/test-webapps/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests tests-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT test-webapps-parent Jetty Tests :: WebApps :: Parent diff --git a/tests/test-webapps/test-webapp-rfc2616/pom.xml b/tests/test-webapps/test-webapp-rfc2616/pom.xml index a58519ad097..78ce58208f8 100644 --- a/tests/test-webapps/test-webapp-rfc2616/pom.xml +++ b/tests/test-webapps/test-webapp-rfc2616/pom.xml @@ -21,7 +21,7 @@ org.eclipse.jetty.tests test-webapps-parent - 8.1.11.v20130520-SNAPSHOT + 8.1.12-SNAPSHOT test-webapp-rfc2616 Jetty Tests :: WebApp :: RFC2616 From 76457d4807286a1b6f9eb70ea8bddc4c72cf6a1b Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Thu, 30 May 2013 11:59:36 +1000 Subject: [PATCH 5/8] 409441 jetty.xml threadpool arg injection Do not use arg injection for ThreadPool --- jetty-deploy/src/test/resources/jetty.xml | 10 ++++------ .../jetty-osgi-boot/jettyhome/etc/jetty.xml | 11 ++++------- .../src/test/config/etc/jetty.xml | 11 ++++------- jetty-server/src/main/config/etc/jetty.xml | 17 +++++++++-------- 4 files changed, 21 insertions(+), 28 deletions(-) diff --git a/jetty-deploy/src/test/resources/jetty.xml b/jetty-deploy/src/test/resources/jetty.xml index fa285624ea4..732adfb3f74 100644 --- a/jetty-deploy/src/test/resources/jetty.xml +++ b/jetty-deploy/src/test/resources/jetty.xml @@ -14,12 +14,10 @@ - - - 200 - 10 - - + + 10 + 200 + diff --git a/jetty-osgi/jetty-osgi-boot/jettyhome/etc/jetty.xml b/jetty-osgi/jetty-osgi-boot/jettyhome/etc/jetty.xml index 4bde8d7222e..5c882b05143 100644 --- a/jetty-osgi/jetty-osgi-boot/jettyhome/etc/jetty.xml +++ b/jetty-osgi/jetty-osgi-boot/jettyhome/etc/jetty.xml @@ -14,13 +14,10 @@ - - - - 10 - 200 - - + + 10 + 200 + diff --git a/jetty-osgi/test-jetty-osgi/src/test/config/etc/jetty.xml b/jetty-osgi/test-jetty-osgi/src/test/config/etc/jetty.xml index 4bde8d7222e..170530b80e6 100644 --- a/jetty-osgi/test-jetty-osgi/src/test/config/etc/jetty.xml +++ b/jetty-osgi/test-jetty-osgi/src/test/config/etc/jetty.xml @@ -14,14 +14,11 @@ - + - - 10 - 200 - - - + 10 + 200 + diff --git a/jetty-server/src/main/config/etc/jetty.xml b/jetty-server/src/main/config/etc/jetty.xml index a551326cc6a..b88ceb217da 100644 --- a/jetty-server/src/main/config/etc/jetty.xml +++ b/jetty-server/src/main/config/etc/jetty.xml @@ -42,14 +42,15 @@ - - - - - - false - - + + + + + + false + From c869aad1450fa2f597f2ab81b123006e3cccad6c Mon Sep 17 00:00:00 2001 From: Jan Bartel Date: Thu, 30 May 2013 15:16:43 +1000 Subject: [PATCH 6/8] 409436 NPE on context restart using dynamic servlet registration --- .../annotations/AnnotationConfiguration.java | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java index 85c366073f0..2d46715c4a2 100644 --- a/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java +++ b/jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java @@ -23,24 +23,17 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ServiceLoader; -import java.util.Set; import javax.servlet.ServletContainerInitializer; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; import javax.servlet.annotation.HandlesTypes; - import org.eclipse.jetty.annotations.AnnotationParser.DiscoverableAnnotationHandler; import org.eclipse.jetty.plus.annotation.ContainerInitializer; import org.eclipse.jetty.util.MultiMap; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; import org.eclipse.jetty.util.resource.Resource; -import org.eclipse.jetty.webapp.Configuration; import org.eclipse.jetty.webapp.AbstractConfiguration; -import org.eclipse.jetty.webapp.Descriptor; -import org.eclipse.jetty.webapp.DiscoveredAnnotation; import org.eclipse.jetty.webapp.FragmentDescriptor; import org.eclipse.jetty.webapp.MetaDataComplete; import org.eclipse.jetty.webapp.WebAppContext; @@ -56,18 +49,31 @@ public class AnnotationConfiguration extends AbstractConfiguration private static final Logger LOG = Log.getLogger(AnnotationConfiguration.class); public static final String CLASS_INHERITANCE_MAP = "org.eclipse.jetty.classInheritanceMap"; public static final String CONTAINER_INITIALIZERS = "org.eclipse.jetty.containerInitializers"; + public static final String CONTAINER_INITIALIZER_LISTENER = "org.eclipse.jetty.containerInitializerListener"; protected List _discoverableAnnotationHandlers = new ArrayList(); protected ClassInheritanceHandler _classInheritanceHandler; protected List _containerInitializerAnnotationHandlers = new ArrayList(); + - + @Override public void preConfigure(final WebAppContext context) throws Exception { } - + @Override + public void deconfigure(WebAppContext context) throws Exception + { + context.removeAttribute(CLASS_INHERITANCE_MAP); + context.removeAttribute(CONTAINER_INITIALIZERS); + ServletContainerInitializerListener listener = (ServletContainerInitializerListener)context.getAttribute(CONTAINER_INITIALIZER_LISTENER); + if (listener != null) + { + context.removeBean(listener); + context.removeAttribute(CONTAINER_INITIALIZER_LISTENER); + } + } /** * @see org.eclipse.jetty.webapp.AbstractConfiguration#configure(org.eclipse.jetty.webapp.WebAppContext) @@ -225,8 +231,12 @@ public class AnnotationConfiguration extends AbstractConfiguration //add a bean which will call the servletcontainerinitializers when appropriate - ServletContainerInitializerListener listener = new ServletContainerInitializerListener(); + ServletContainerInitializerListener listener = (ServletContainerInitializerListener)context.getAttribute(CONTAINER_INITIALIZER_LISTENER); + if (listener != null) + throw new IllegalStateException("ServletContainerInitializerListener already exists"); + listener = new ServletContainerInitializerListener(); listener.setWebAppContext(context); + context.setAttribute(CONTAINER_INITIALIZER_LISTENER, listener); context.addBean(listener, true); } From d8f2350f5093e341e098ea86d3f0045dc760ab88 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Thu, 30 May 2013 16:13:49 +1000 Subject: [PATCH 7/8] 398467 Servlet 3.1 Non Blocking IO Removed double dispatch due to HttpPArser content handler returning true for deferred dispatch. --- .../org/eclipse/jetty/http/HttpParser.java | 3 +++ .../org/eclipse/jetty/server/HttpChannel.java | 6 +++--- .../eclipse/jetty/server/HttpConnection.java | 16 ++++++++-------- .../jetty/server/HttpServerTestBase.java | 19 +++++++++++-------- .../jetty/server/SelectChannelServerTest.java | 7 ------- .../jetty/server/ssl/SSLEngineTest.java | 1 + 6 files changed, 26 insertions(+), 26 deletions(-) diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java index 49923335f57..1cf9e85ad45 100644 --- a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java +++ b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpParser.java @@ -1151,6 +1151,9 @@ public class HttpParser break; case END: + // eat white space + while (buffer.remaining()>0 && buffer.get(buffer.position())<=HttpTokens.SPACE) + buffer.get(); return false; case CLOSED: diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java index 28e135780e0..e17d8433e3e 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java @@ -555,8 +555,7 @@ public class HttpChannel implements HttpParser.RequestHandler, Runnable throw new IllegalStateException(); } - // Either handle now or wait for first content/message complete - return _expect100Continue; + return true; } @Override @@ -567,7 +566,8 @@ public class HttpChannel implements HttpParser.RequestHandler, Runnable @SuppressWarnings("unchecked") HttpInput input = (HttpInput)_request.getHttpInput(); input.content(item); - return true; + + return false; } @Override diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java index 2217f0a2b38..f2ce11d61db 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpConnection.java @@ -428,20 +428,20 @@ public class HttpConnection extends AbstractConnection implements Runnable, Http that uses the calling thread to block on a readable callback and then to do the parsing before before attempting the read. */ - while (true) + while (!_parser.isComplete()) { // Can the parser progress (even with an empty buffer) - boolean event=_parser.parseNext(_requestBuffer==null?BufferUtil.EMPTY_BUFFER:_requestBuffer); - + boolean event=_parser.parseNext(_requestBuffer==null?BufferUtil.EMPTY_BUFFER:_requestBuffer); + // If there is more content to parse, loop so we can queue all content from this buffer now without the // need to call blockForContent again - while (event && BufferUtil.hasContent(_requestBuffer) && _parser.inContentState()) - _parser.parseNext(_requestBuffer); + while (!event && BufferUtil.hasContent(_requestBuffer) && _parser.inContentState()) + event=_parser.parseNext(_requestBuffer); - // If we have an event, return - if (event) + // If we have content, return + if (_parser.isComplete() || available()>0) return; - + // Do we have content ready to parse? if (BufferUtil.isEmpty(_requestBuffer)) { diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java index b717edf6c16..5a5f5945e11 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java @@ -466,10 +466,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture // Pick fragment points at random for (int j = 0; j < points.length; ++j) - { points[j] = random.nextInt(bytes.length); - } - // System.err.println("points "+points[0]+" "+points[1]); // Sort the list Arrays.sort(points); @@ -1138,15 +1135,20 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture InputStream in = request.getInputStream(); ServletOutputStream out = response.getOutputStream(); - // should always be some input available, because of deferred dispatch. + // this should initially be 0 bytes available. int avail = in.available(); out.println(avail); + // block for the first character String buf = ""; + buf += (char)in.read(); + + // read remaining available bytes + avail = in.available(); + out.println(avail); for (int i = 0; i < avail; i++) buf += (char)in.read(); - avail = in.available(); out.println(avail); @@ -1238,10 +1240,11 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture BufferedReader reader = new BufferedReader(new InputStreamReader(is)); // skip header while (reader.readLine().length() > 0) ; + assertThat(Integer.parseInt(reader.readLine()), Matchers.equalTo(0)); + assertThat(Integer.parseInt(reader.readLine()), Matchers.equalTo(9)); + assertThat(Integer.parseInt(reader.readLine()), Matchers.equalTo(0)); assertThat(Integer.parseInt(reader.readLine()), Matchers.greaterThan(0)); - assertEquals(0, Integer.parseInt(reader.readLine())); - assertThat(Integer.parseInt(reader.readLine()), Matchers.greaterThan(0)); - assertEquals(0, Integer.parseInt(reader.readLine())); + assertThat(Integer.parseInt(reader.readLine()), Matchers.equalTo(0)); assertEquals("1234567890abcdefghijklmnopqrst", reader.readLine()); } } diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/SelectChannelServerTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/SelectChannelServerTest.java index 0b19b2069e6..7d43055c726 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/SelectChannelServerTest.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/SelectChannelServerTest.java @@ -30,11 +30,4 @@ public class SelectChannelServerTest extends HttpServerTestBase { startServer(new ServerConnector(_server)); } - - @Override - public void testBlockingWhileWritingResponseContent() throws Exception - { - super.testBlockingWhileWritingResponseContent(); - } - } diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLEngineTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLEngineTest.java index 03d4e32837e..5a3339e2b3e 100644 --- a/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLEngineTest.java +++ b/jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SSLEngineTest.java @@ -270,6 +270,7 @@ public class SSLEngineTest { ((HttpsURLConnection)conn).setHostnameVerifier(new HostnameVerifier() { + @Override public boolean verify(String urlHostName, SSLSession session) { return true; From 3a46498a27e249e3674a0f7d3441362221c27034 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Thu, 30 May 2013 17:01:16 +1000 Subject: [PATCH 8/8] 408909 GzipFilter setting of headers when reset and/or not compressed defer commit until aggregate buffer overflows --- .../gzip/AbstractCompressedStream.java | 46 +++++++++++++------ 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/gzip/AbstractCompressedStream.java b/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/gzip/AbstractCompressedStream.java index e5ae762f190..c27a272ee1f 100644 --- a/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/gzip/AbstractCompressedStream.java +++ b/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/gzip/AbstractCompressedStream.java @@ -179,7 +179,7 @@ public abstract class AbstractCompressedStream extends ServletOutputStream if (_out == null || _bOut != null) { long length=_wrapper.getContentLength(); - if (length<0 && _bOut==null || length >= 0 && length < _wrapper.getMinCompressSize()) + if (length<0 &&_bOut==null || length >= 0 && length < _wrapper.getMinCompressSize()) doNotCompress(false); else doCompress(); @@ -240,7 +240,7 @@ public abstract class AbstractCompressedStream extends ServletOutputStream if (_encoding!=null) { - setHeader("Content-Encoding", _encoding); + setHeader("Content-Encoding", _encoding); if (_response.containsHeader("Content-Encoding")) { addHeader("Vary",_vary); @@ -307,27 +307,43 @@ public abstract class AbstractCompressedStream extends ServletOutputStream throw new IOException("CLOSED"); if (_out == null) - { - long length=_wrapper.getContentLength(); - if (_response.isCommitted() || (length >= 0 && length < _wrapper.getMinCompressSize())) - doNotCompress(false); - else if (lengthToWrite > _wrapper.getMinCompressSize()) - doCompress(); + { + // If this first write is larger than buffer size, then we are committing now + if (lengthToWrite>_wrapper.getBufferSize()) + { + // if we know this is all the content and it is less than minimum, then do not compress, otherwise do compress + long length=_wrapper.getContentLength(); + if (length>=0 && length<_wrapper.getMinCompressSize()) + doNotCompress(false); // Not compressing by size, so no vary on request headers + else + doCompress(); + } else + { + // start aggregating writes into a buffered output stream _out = _bOut = new ByteArrayOutputStream2(_wrapper.getBufferSize()); + } } - else if (_bOut != null) + // else are we aggregating writes? + else if (_bOut !=null) { - long length=_wrapper.getContentLength(); - if (_response.isCommitted() || (length >= 0 && length < _wrapper.getMinCompressSize())) - doNotCompress(false); - else if (lengthToWrite >= (_bOut.getBuf().length - _bOut.getCount())) - doCompress(); + // We are aggregating into the buffered output stream. + + // If this write fills the buffer, then we are committing + if (lengthToWrite>=(_bOut.getBuf().length - _bOut.getCount())) + { + // if we know this is all the content and it is less than minimum, then do not compress, otherwise do compress + long length=_wrapper.getContentLength(); + if (length>=0 && length<_wrapper.getMinCompressSize()) + doNotCompress(false); // Not compressing by size, so no vary on request headers + else + doCompress(); + } } } /** - * @see org.eclipse.jetty.http.gzip.CompressedStream#createOutputStream() + * @see org.eclipse.jetty.servlets.gzip.CompressedStream#getOutputStream() */ public OutputStream getOutputStream() {