update to netty 4.1.52, add exception handler for HTTP pipeline handler
This commit is contained in:
parent
ea640122d8
commit
57af07c950
3 changed files with 23 additions and 5 deletions
|
@ -1,19 +1,19 @@
|
|||
group = org.xbib
|
||||
name = netty-http
|
||||
version = 4.1.51.5
|
||||
version = 4.1.52.0
|
||||
|
||||
gradle.wrapper.version = 6.4.1
|
||||
netty.version = 4.1.51.Final
|
||||
tcnative.version = 2.0.31.Final
|
||||
xbib.net.version = 2.1.0
|
||||
netty.version = 4.1.52.Final
|
||||
tcnative.version = 2.0.34.Final
|
||||
bouncycastle.version = 1.66
|
||||
reactivestreams.version = 1.0.2
|
||||
xbib-guice.version = 4.0.4
|
||||
reactivex.version = 1.3.8
|
||||
conscrypt.version = 2.4.0
|
||||
javassist.version = 3.27.0-GA
|
||||
jackson.version = 2.11.1
|
||||
mockito.version = 3.4.4
|
||||
xbib.net.version = 2.1.0
|
||||
xbib-guice.version = 4.0.4
|
||||
# uuhh, too many tests to update to jupiter in rx...
|
||||
junit.version = 5.6.2
|
||||
junit4.version = 4.13
|
||||
|
|
|
@ -100,6 +100,7 @@ public final class Server implements AutoCloseable {
|
|||
* @param parentEventLoopGroup parent event loop group
|
||||
* @param childEventLoopGroup child event loop group
|
||||
* @param socketChannelClass socket channel class
|
||||
* @param executor an extra blocking thread pool executor or null
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
private Server(DefaultServerConfig serverConfig,
|
||||
|
|
|
@ -1,15 +1,22 @@
|
|||
package org.xbib.netty.http.server.protocol.http1;
|
||||
|
||||
import io.netty.buffer.Unpooled;
|
||||
import io.netty.channel.ChannelDuplexHandler;
|
||||
import io.netty.channel.ChannelHandlerContext;
|
||||
import io.netty.channel.ChannelPromise;
|
||||
import io.netty.handler.codec.http.DefaultFullHttpResponse;
|
||||
import io.netty.handler.codec.http.HttpResponseStatus;
|
||||
import io.netty.handler.codec.http.HttpVersion;
|
||||
import io.netty.handler.codec.http.LastHttpContent;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.PriorityQueue;
|
||||
import java.util.Queue;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.concurrent.locks.Lock;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
* Implements HTTP pipelining ordering, ensuring that responses are completely served in the same order as their
|
||||
|
@ -19,6 +26,8 @@ import java.util.concurrent.locks.ReentrantLock;
|
|||
*/
|
||||
public class HttpPipeliningHandler extends ChannelDuplexHandler {
|
||||
|
||||
private final Logger logger = Logger.getLogger(HttpPipeliningHandler.class.getName());
|
||||
|
||||
private final int pipelineCapacity;
|
||||
|
||||
private final Lock lock;
|
||||
|
@ -80,4 +89,12 @@ public class HttpPipeliningHandler extends ChannelDuplexHandler {
|
|||
super.write(ctx, msg, promise);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
|
||||
logger.log(Level.SEVERE, cause.getMessage(), cause);
|
||||
ctx.writeAndFlush(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1,
|
||||
HttpResponseStatus.INTERNAL_SERVER_ERROR,
|
||||
Unpooled.copiedBuffer(cause.getMessage().getBytes(StandardCharsets.UTF_8))));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue