From: Robert Varga Date: Thu, 28 Mar 2024 12:36:26 +0000 (+0100) Subject: Share codepath in ServerChannelInitializer X-Git-Tag: v7.0.4~20 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=4cfe21b6763126f8359d28bc3cef69ed34569c96;p=netconf.git Share codepath in ServerChannelInitializer The failure path shares the same epilogue as the success path. Dispatch to onSuccess() to share the actual code. JIRA: NETCONF-1248 Change-Id: I34f9bf37e3652fab6a1a5691ceabedf4132b4124 Signed-off-by: Robert Varga --- diff --git a/transport/transport-http/src/main/java/org/opendaylight/netconf/transport/http/ServerChannelInitializer.java b/transport/transport-http/src/main/java/org/opendaylight/netconf/transport/http/ServerChannelInitializer.java index 92e3832ecb..642fd6fa1f 100644 --- a/transport/transport-http/src/main/java/org/opendaylight/netconf/transport/http/ServerChannelInitializer.java +++ b/transport/transport-http/src/main/java/org/opendaylight/netconf/transport/http/ServerChannelInitializer.java @@ -162,31 +162,28 @@ class ServerChannelInitializer extends ChannelInitializer implements Ht private static ChannelHandler serverHandler(final RequestDispatcher dispatcher) { return new SimpleChannelInboundHandler() { @Override - protected void channelRead0(final ChannelHandlerContext ctx, final FullHttpRequest request) - throws Exception { - Futures.addCallback(dispatcher.dispatch(request.retain()), - new FutureCallback<>() { - @Override - public void onSuccess(final FullHttpResponse response) { - copyStreamId(request, response); - request.release(); - ctx.writeAndFlush(response); - } - - @Override - public void onFailure(final Throwable throwable) { - final var message = throwable.getMessage(); - final var content = message == null ? EMPTY_BUFFER - : Unpooled.wrappedBuffer(message.getBytes(StandardCharsets.UTF_8)); - final var response = new DefaultFullHttpResponse(request.protocolVersion(), - INTERNAL_SERVER_ERROR, content); - response.headers().set(CONTENT_TYPE, TEXT_PLAIN) - .setInt(CONTENT_LENGTH, response.content().readableBytes()); - copyStreamId(request, response); - request.release(); - ctx.writeAndFlush(response); - } - }, MoreExecutors.directExecutor()); + protected void channelRead0(final ChannelHandlerContext ctx, final FullHttpRequest request) { + Futures.addCallback(dispatcher.dispatch(request.retain()), new FutureCallback<>() { + @Override + public void onSuccess(final FullHttpResponse response) { + copyStreamId(request, response); + request.release(); + ctx.writeAndFlush(response); + } + + @Override + public void onFailure(final Throwable throwable) { + final var message = throwable.getMessage(); + final var content = message == null ? EMPTY_BUFFER + : Unpooled.wrappedBuffer(message.getBytes(StandardCharsets.UTF_8)); + final var response = new DefaultFullHttpResponse(request.protocolVersion(), + INTERNAL_SERVER_ERROR, content); + response.headers() + .set(CONTENT_TYPE, TEXT_PLAIN) + .setInt(CONTENT_LENGTH, response.content().readableBytes()); + onSuccess(response); + } + }, MoreExecutors.directExecutor()); } }; }