Merge remote-tracking branch 'origin/jetty-9.4.x'

This commit is contained in:
Greg Wilkins 2016-11-24 13:49:55 +11:00
commit 04dae709fc
4 changed files with 75 additions and 94 deletions

View File

@ -63,6 +63,7 @@ import org.eclipse.jetty.http.HttpHeader;
import org.eclipse.jetty.http.HttpHeaderValue; import org.eclipse.jetty.http.HttpHeaderValue;
import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.io.RuntimeIOException; import org.eclipse.jetty.io.RuntimeIOException;
import org.eclipse.jetty.server.HttpChannel;
import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.HttpConfiguration;
import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.HttpConnectionFactory;
import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.Server;
@ -517,6 +518,8 @@ public class AsyncMiddleManServletTest
@Test @Test
public void testUpstreamTransformationThrowsAfterCommittingProxyRequest() throws Exception public void testUpstreamTransformationThrowsAfterCommittingProxyRequest() throws Exception
{
try (StacklessLogging scope = new StacklessLogging(HttpChannel.class))
{ {
startServer(new EchoHttpServlet()); startServer(new EchoHttpServlet());
startProxy(new AsyncMiddleManServlet() startProxy(new AsyncMiddleManServlet()
@ -562,6 +565,7 @@ public class AsyncMiddleManServletTest
Assert.assertTrue(latch.await(5, TimeUnit.SECONDS)); Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
} }
}
@Test @Test
public void testDownstreamTransformationThrowsAtOnContent() throws Exception public void testDownstreamTransformationThrowsAtOnContent() throws Exception
@ -790,6 +794,8 @@ public class AsyncMiddleManServletTest
@Test @Test
public void testClientRequestReadFailsOnSecondRead() throws Exception public void testClientRequestReadFailsOnSecondRead() throws Exception
{
try (StacklessLogging scope = new StacklessLogging(HttpChannel.class))
{ {
startServer(new EchoHttpServlet()); startServer(new EchoHttpServlet());
startProxy(new AsyncMiddleManServlet() startProxy(new AsyncMiddleManServlet()
@ -827,6 +833,7 @@ public class AsyncMiddleManServletTest
Assert.assertTrue(latch.await(5, TimeUnit.SECONDS)); Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
} }
}
@Test @Test
public void testProxyResponseWriteFailsOnFirstWrite() throws Exception public void testProxyResponseWriteFailsOnFirstWrite() throws Exception

View File

@ -842,7 +842,7 @@ public class HttpInput extends ServletInputStream implements Runnable
} }
} }
else if (content==null) else if (content==null)
throw new IllegalStateException(); return;
} }
} }

View File

@ -27,7 +27,6 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
import java.nio.channels.SelectionKey;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.ArrayList; import java.util.ArrayList;
@ -50,7 +49,6 @@ import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.io.ByteBufferPool; import org.eclipse.jetty.io.ByteBufferPool;
import org.eclipse.jetty.io.LeakTrackingByteBufferPool; import org.eclipse.jetty.io.LeakTrackingByteBufferPool;
import org.eclipse.jetty.io.ManagedSelector;
import org.eclipse.jetty.io.MappedByteBufferPool; import org.eclipse.jetty.io.MappedByteBufferPool;
import org.eclipse.jetty.server.handler.AbstractHandler; import org.eclipse.jetty.server.handler.AbstractHandler;
import org.eclipse.jetty.toolchain.test.MavenTestingUtils; import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
@ -245,30 +243,6 @@ public class ThreadStarvationTest
}); });
} }
// new Thread(()->{
// try
// {
// TimeUnit.SECONDS.sleep(10);
//
// ServerConnector conn = _server.getBean(ServerConnector.class);
// ManagedSelector ms = conn.getSelectorManager().getBean(ManagedSelector.class);
//
// Selector sel = ms.getSelector();
// sel.keys().stream().map((key)->key.attachment()).forEach(
// (attach) -> {
// System.out.println(attach);
// SocketChannelEndPoint endp = (SocketChannelEndPoint) attach;
// SslConnection sslconn = (SslConnection) endp.getConnection();
// sslconn.dumpBuffers();
// });
//
// _server.dump(System.out, "");
// }
// catch (Throwable ignore)
// {
// }
// }).start();
try try
{ {
List<Future<String>> responses = clientExecutors.invokeAll(clientTasks, 60, TimeUnit.SECONDS); List<Future<String>> responses = clientExecutors.invokeAll(clientTasks, 60, TimeUnit.SECONDS);

View File

@ -46,7 +46,7 @@ public class StacklessLogging implements AutoCloseable
{ {
Logger log = Log.getLogger(clazz); Logger log = Log.getLogger(clazz);
// only operate on loggers that are of type StdErrLog // only operate on loggers that are of type StdErrLog
if (log instanceof StdErrLog) if (log instanceof StdErrLog && !log.isDebugEnabled())
{ {
StdErrLog stdErrLog=((StdErrLog)log); StdErrLog stdErrLog=((StdErrLog)log);
if (!stdErrLog.isHideStacks()) if (!stdErrLog.isHideStacks())
@ -63,7 +63,7 @@ public class StacklessLogging implements AutoCloseable
for (Logger log : logs) for (Logger log : logs)
{ {
// only operate on loggers that are of type StdErrLog // only operate on loggers that are of type StdErrLog
if (log instanceof StdErrLog) if (log instanceof StdErrLog && !log.isDebugEnabled())
{ {
StdErrLog stdErrLog=((StdErrLog)log); StdErrLog stdErrLog=((StdErrLog)log);
if (!stdErrLog.isHideStacks()) if (!stdErrLog.isHideStacks())