Sample

int-763e073c34f8-I11

Split eligible integer literals into pairs of short-named intermediate variables

Matched original source

Lines55

Scores

MethodScoreScale
Posnett00–1; higher is more readable
Scalabrino0.570–1; higher is more readable
Dorn0.2710–1; higher is more readable
Mi0.4940–1; higher is more readable
LLOC24Logical lines; fewer is more readable
DeepSeek V4 Pro16.330–20; mean of three runs
GPT-6.1 Sol170–20; mean of three runs
BTTF0.5160–1; higher is more readable

Views

Source code

package io.netty.example.http.snoop; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import io.netty.handler.codec.http.HttpContent; import io.netty.handler.codec.http.HttpUtil; import io.netty.handler.codec.http.HttpObject; import io.netty.handler.codec.http.HttpResponse; import io.netty.handler.codec.http.LastHttpContent; import io.netty.util.CharsetUtil; public class HttpSnoopClientHandler extends SimpleChannelInboundHandler<HttpObject> { @Override public void channelRead0(ChannelHandlerContext ctx, HttpObject msg) { if (msg instanceof HttpResponse) { HttpResponse response = (HttpResponse) msg; System.err.println("STATUS: " + response.status()); System.err.println("VERSION: " + response.protocolVersion()); System.err.println(); if (!response.headers().isEmpty()) { for (CharSequence name: response.headers().names()) { for (CharSequence value: response.headers().getAll(name)) { System.err.println("HEADER: " + name + " = " + value); } } System.err.println(); } if (HttpUtil.isTransferEncodingChunked(response)) { System.err.println("CHUNKED CONTENT {"); } else { System.err.println("CONTENT {"); } } if (msg instanceof HttpContent) { HttpContent content = (HttpContent) msg; System.err.print(content.content().toString(CharsetUtil.UTF_8)); System.err.flush(); if (content instanceof LastHttpContent) { System.err.println("} END OF CONTENT"); ctx.close(); } } } @Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { cause.printStackTrace(); ctx.close(); } }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(log-odds)
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.2355.469−77.73
Source linesThe number of non-empty source lines.55+22
Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value.4.492−6.738

Intercept 8.87 + feature contributions = -53.598 (log-odds).
Score = sigmoid(-53.598) = 0.

Score0.57

Feature contributions

FeatureValueContribution
(log-odds)
Indentation frequencyHow rapidly indentation changes from line to line.55+1.165
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.55−0.911
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.55−0.841
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.54.907+0.358
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.107−0.095
Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names.84.911+0.069

Intercept 0.07 + feature contributions = -0.989 (log-odds).
Score = sigmoid(-0.989) = 0.271.

Score0.494
Score24
Run 1

The code is well-structured with clear separation of concerns and logical organization. It handles HTTP responses and content in flat, easily readable blocks with minimal nesting. Intent is clear from descriptive method and variable names. The code is concise and avoids unnecessary length. Each line generally performs one action, contributing to readability. The reading flow is natural, following the HTTP message processing sequence. Minor improvements could include extracting repeated System.err.println calls or using string formatting, but overall the code is highly readable for a Netty handler implementation.

Run 2

The code is generally readable with a logical structure, clear intent, and mostly flat nesting. The handler processes HTTP responses and content in a straightforward manner. Each action is on its own line, with appropriate use of blank lines. However, readability is slightly reduced by some duplication in the if-else blocks (e.g., printing headers and content delimiters), and the nested loop for headers could be simplified. The method name 'channelRead0' is an Netty convention, but could be clearer. Overall, the code is concise and easy to follow, earning a high readability score.

Run 3

The code is well-structured with clear separation of concerns: handling HttpResponse vs HttpContent. Nesting is moderate — one level of if-statements, with a small nested loop for headers that could be flattened but is acceptable. Intent is clear: log HTTP response metadata and content. The method is reasonably concise, though some verbose System.err.println calls could be simplified. Action granularity is good — one action per line mostly, especially when printing headers. Reading flow is natural: status, version, headers, then content handling. Minor downsides: repeated System.err.println and lack of constants for strings, but overall the code is easy to follow.

Run 1

Code Structure: Clearly separates response metadata, content processing, and exception handling. Nesting: Mostly shallow, though header printing uses nested loops inside two conditionals, adding some visual complexity. Clarity of intent: Descriptive class, method, and variable names make the HTTP logging purpose evident. Code length: Compact and appropriate, with minor repetition in output statements. Action granularity: Each statement performs one clear action, keeping operations easy to follow. Reading flow: Naturally progresses from status and headers to content and completion, with whitespace separating logical steps. Independent response and content checks accommodate messages implementing both interfaces, although this detail requires familiarity with Netty.

Run 2

Code Structure: Logically organized into response metadata handling, content handling, and exception handling. Nesting: Mostly shallow, though header printing reaches four nested control levels. Clarity of intent: Descriptive class, variable names, and output labels make the HTTP logging purpose clear. Code length: Concise overall; extracting header printing could simplify the main method, but is not essential. Action granularity: Each statement performs a distinct action, with no compressed multi-action lines. Reading flow: Naturally follows response metadata, body content, and completion. The independent response and content checks appropriately allow an object to satisfy both types. Minor drawbacks include repeated output calls, slightly inconsistent spacing, and the nested header traversal.

Run 3

Code Structure: Well-organized handler methods separate message processing from exception handling, with distinct response and content sections. Nesting: Mostly shallow, though header iteration reaches four levels and slightly slows scanning. Clarity of intent: Descriptive names, explicit type checks, and labeled output clearly communicate HTTP response logging. Code length: Compact and appropriate; repetitive print statements serve the output format rather than adding unnecessary complexity. Action granularity: Each statement performs a single clear action, with no compressed multi-action lines. Reading flow: Processing progresses naturally from status and headers to content and completion, followed by error handling. Minor drawbacks include tightly packed imports, nested header loops, and the lack of a brief explanation for the independent response and content checks.