funky-eyes commented on code in PR #7451:
URL: https://github.com/apache/incubator-seata/pull/7451#discussion_r2157256565


##########
core/src/main/java/org/apache/seata/core/protocol/detector/HttpDetector.java:
##########
@@ -52,10 +67,59 @@ private boolean startsWith(ByteBuf buffer, String prefix) {
 
     @Override
     public ChannelHandler[] getHandlers() {
+        HttpServerCodec sourceCodec = new HttpServerCodec();
+        HttpServerUpgradeHandler upgradeHandler = 
getHttpServerUpgradeHandler(sourceCodec);
+
+        ChannelInboundHandlerAdapter upgradeCleanupHandler = new 
ChannelInboundHandlerAdapter() {
+            @Override
+            public void userEventTriggered(ChannelHandlerContext ctx, Object 
evt) throws Exception {
+                if (evt instanceof HttpServerUpgradeHandler.UpgradeEvent) {
+                    ChannelPipeline p = ctx.pipeline();
+                    p.remove(HttpObjectAggregator.class);
+                    p.remove(HttpDispatchHandler.class);
+                }
+                super.userEventTriggered(ctx, evt);
+            }
+        };
+
+        ChannelInboundHandlerAdapter finalExceptionHandler = new 
ChannelInboundHandlerAdapter() {
+            @Override
+            public void exceptionCaught(ChannelHandlerContext ctx, Throwable 
cause) {
+                if (cause instanceof java.io.IOException) {
+                    LOGGER.trace("Connection closed by client: {}", 
cause.getMessage());
+                } else {
+                    LOGGER.error("Exception caught in HTTP pipeline: ", cause);
+                }
+                ctx.close();
+            }
+        };

Review Comment:
   > Is it okay not to override methods like `channelInactive` and 
`channelUnregistered`?
   
   Since most HTTP connections are short-lived, if you do not override the 
exceptionCaught method, a large number of unexpected connection closed 
exceptions will be output. For example, if you use the curl command to simulate 
a request, you will encounter such exceptions.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@seata.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@seata.apache.org
For additional commands, e-mail: notifications-h...@seata.apache.org

Reply via email to