This commit is contained in:
@@ -62,8 +62,9 @@ public final class PrepareRunner implements Runnable {
|
|||||||
public void completed(Integer count, Void attachment1) {
|
public void completed(Integer count, Void attachment1) {
|
||||||
if (count < 1) {
|
if (count < 1) {
|
||||||
response.request.offerReadBuffer(buffer);
|
response.request.offerReadBuffer(buffer);
|
||||||
response.finish(true);
|
|
||||||
channel.dispose();// response.init(channel); 在调用之前异常
|
channel.dispose();// response.init(channel); 在调用之前异常
|
||||||
|
response.removeChannel();
|
||||||
|
response.finish(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// { //测试
|
// { //测试
|
||||||
@@ -85,8 +86,9 @@ public final class PrepareRunner implements Runnable {
|
|||||||
@Override
|
@Override
|
||||||
public void failed(Throwable exc, Void attachment2) {
|
public void failed(Throwable exc, Void attachment2) {
|
||||||
response.request.offerReadBuffer(buffer);
|
response.request.offerReadBuffer(buffer);
|
||||||
|
channel.dispose();// response.init(channel); 在调用之前异常
|
||||||
|
response.removeChannel();
|
||||||
response.finish(true);
|
response.finish(true);
|
||||||
channel.dispose(); // response.init(channel); 可能在调用之前异常
|
|
||||||
if (exc != null && context.logger.isLoggable(Level.FINEST)) {
|
if (exc != null && context.logger.isLoggable(Level.FINEST)) {
|
||||||
context.logger.log(Level.FINEST, "Servlet Handler read channel erroneous, forece to close channel ", exc);
|
context.logger.log(Level.FINEST, "Servlet Handler read channel erroneous, forece to close channel ", exc);
|
||||||
}
|
}
|
||||||
@@ -94,8 +96,9 @@ public final class PrepareRunner implements Runnable {
|
|||||||
});
|
});
|
||||||
} catch (Exception te) {
|
} catch (Exception te) {
|
||||||
response.request.offerReadBuffer(buffer);
|
response.request.offerReadBuffer(buffer);
|
||||||
|
channel.dispose();// response.init(channel); 在调用之前异常
|
||||||
|
response.removeChannel();
|
||||||
response.finish(true);
|
response.finish(true);
|
||||||
channel.dispose(); // response.init(channel); 可能在调用之前异常
|
|
||||||
if (te != null && context.logger.isLoggable(Level.FINEST)) {
|
if (te != null && context.logger.isLoggable(Level.FINEST)) {
|
||||||
context.logger.log(Level.FINEST, "Servlet read channel erroneous, forece to close channel ", te);
|
context.logger.log(Level.FINEST, "Servlet read channel erroneous, forece to close channel ", te);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -251,7 +251,11 @@ public final class Transport {
|
|||||||
if (!queue.isEmpty()) {
|
if (!queue.isEmpty()) {
|
||||||
AsyncConnection conn;
|
AsyncConnection conn;
|
||||||
while ((conn = queue.poll()) != null) {
|
while ((conn = queue.poll()) != null) {
|
||||||
if (conn.isOpen()) return CompletableFuture.completedFuture(conn);
|
if (conn.isOpen()) {
|
||||||
|
return CompletableFuture.completedFuture(conn);
|
||||||
|
} else {
|
||||||
|
conn.dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CompletableFuture future = new CompletableFuture();
|
CompletableFuture future = new CompletableFuture();
|
||||||
@@ -342,6 +346,8 @@ public final class Transport {
|
|||||||
if (conn.isOpen()) {
|
if (conn.isOpen()) {
|
||||||
TransportNode node = findTransportNode(conn.getRemoteAddress());
|
TransportNode node = findTransportNode(conn.getRemoteAddress());
|
||||||
if (node == null || !node.conns.offer(conn)) conn.dispose();
|
if (node == null || !node.conns.offer(conn)) conn.dispose();
|
||||||
|
} else {
|
||||||
|
conn.dispose();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
conn.dispose();
|
conn.dispose();
|
||||||
|
|||||||
Reference in New Issue
Block a user