Sample

int-43a79cf5fd5a-I04

Replace method, parameter, and local names with deterministic ProGuard-style short identifiers

Matched original source

Lines50

Scores

MethodScoreScale
Posnett00–1; higher is more readable
Scalabrino0.6730–1; higher is more readable
Dorn0.6330–1; higher is more readable
Mi0.4270–1; higher is more readable
LLOC12Logical lines; fewer is more readable
DeepSeek V4 Pro4.670–20; mean of three runs
GPT-6.1 Sol12.670–20; mean of three runs
BTTF0.4230–1; higher is more readable

Views

Source code

package io.netty.example.sctp; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.netty.channel.MultiThreadIoEventLoopGroup; import io.netty.channel.nio.NioIoHandler; import io.netty.channel.sctp.SctpChannel; import io.netty.channel.sctp.nio.NioSctpServerChannel; import io.netty.handler.logging.LogLevel; import io.netty.handler.logging.LoggingHandler; /** * Echoes back any received data from a SCTP client. */ public final class SctpEchoServer { static final int PORT = Integer.parseInt(System.getProperty("port", "8007")); public static void a(String[] a) throws Exception { // Configure the server. EventLoopGroup c = new MultiThreadIoEventLoopGroup(NioIoHandler.newFactory()); final SctpEchoServerHandler d = new SctpEchoServerHandler(); try { ServerBootstrap b = new ServerBootstrap(); b.group(c) .channel(NioSctpServerChannel.class) .option(ChannelOption.SO_BACKLOG, 100) .handler(new LoggingHandler(LogLevel.INFO)) .childHandler(new ChannelInitializer<SctpChannel>() { @Override public void b(SctpChannel e) throws Exception { e.pipeline().addLast( //new LoggingHandler(LogLevel.INFO), d); } }); // Start the server. ChannelFuture f = b.bind(PORT).sync(); // Wait until the server socket is closed. f.channel().closeFuture().sync(); } finally { // Shut down all event loops to terminate all threads. c.shutdownGracefully(); } } }

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.1862.417−61.46
Source linesThe number of non-empty source lines.50+20
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.581−6.871

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

Score0.673

Feature contributions

FeatureValueContribution
(log-odds)
Indentation frequencyHow rapidly indentation changes from line to line.43+0.75
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.50−0.734
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.85.961+0.582
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.43−0.566
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.49.989+0.289
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.084+0.129
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.86+0.023

Intercept 0.07 + feature contributions = 0.544 (log-odds).
Score = sigmoid(0.544) = 0.633.

Score0.427
Score12
Run 1

The code has a reasonable overall structure with try/finally resource cleanup, but its readability is severely degraded by obfuscated naming: method 'a', variables 'b', 'c', 'd', 'e', 'f'. The main method is named 'a' instead of 'main', and an inner method is 'b'. This makes the intent of each action ambiguous, and the flow is hard to follow despite the logical organization. One action per line is mostly respected, and nesting is moderate, but the poor naming reduces clarity. Comments are helpful but do not compensate. The code appears to follow a standard bootstrap pattern, but anyone reading it must repeatedly infer variable meanings. To reach a high readability score, descriptive names and proper method definitions are essential. As presented, it is closer to unreadable despite its concise structure.

Run 2

The code has severe readability issues. Method and variable names are single letters (a, b, c, d, e, f) which completely obscures intent and violates Java naming conventions. The 'SctpEchoServerHandler' referenced is not defined in this snippet, making the example incomplete. Class structure is acceptable (package, imports, class, main method) but imports are not organized logically. Nesting is moderate but acceptable. Code length is reasonable. Action granularity is mostly one action per line, but the fluent API chain is long. Reading flow is disrupted by meaningless names and unclear variable purposes. The use of 'a' for main method arguments and 'b' for channel initializer method is particularly confusing. Even though the comments provide some context, the identifiers destroy clarity. This code would require significant rename refactoring to be maintainable or readable by others.

Run 3

The code exhibits severe readability issues. Class and method names are obfuscated (e.g., class 'a', method 'b', variables 'b', 'c', 'd', 'e', 'f'), which makes the intent completely unclear despite the comments. The structure follows a standard Netty server pattern, but the cryptic names destroy the reading flow and clarity of intent. Nesting is moderate due to the anonymous inner class, but action granularity and code length are reasonable. However, the meaningless identifiers and unconventional static final PORT naming (non-uppercase) violate common Java conventions, making the code extremely difficult to follow and maintain. The code would be much more readable with descriptive variable and method names, consistent naming conventions, and reduced ambiguity.

Run 1

Code Structure: Logically separates server configuration, startup, waiting, and cleanup, with reliable try/finally organization. Nesting: Mostly shallow, although the anonymous initializer inside a fluent configuration chain adds complexity. Clarity of intent: The class name, documentation, and comments explain the echo-server purpose, but single-letter variables and methods obscure roles; renamed entry-point and override methods also make the intended Java/Netty conventions harder to recognize. Code length: Compact overall, though the commented-out logging statement and multiline single-handler addition add clutter. Action granularity: Statements generally perform one action each, and chained configuration calls are separated by line. Reading flow: Follows a natural configure–bind–wait–shutdown sequence, but cryptic identifiers and the embedded initializer interrupt otherwise straightforward reading.

Run 2

Code Structure: Logically separates configuration, startup, waiting, and cleanup, with reliable try/finally organization. Nesting: Moderate nesting from the anonymous initializer inside the try block, but still manageable. Clarity of intent: The class name, documentation, and comments establish an echo server, but single-letter variables and methods obscure roles. Renaming standard main and initChannel methods to a and b also undermines recognizable Java/Netty conventions. Code length: Mostly concise, though the commented-out logging call adds clutter. Action granularity: Statements generally perform one action; the fluent configuration chain clearly places each option on its own line. Reading flow: Execution proceeds naturally from setup to shutdown, but cryptic identifiers and the oddly split addLast call interrupt readability.

Run 3

Code Structure: Server configuration, startup, waiting, and cleanup are logically organized, with resource shutdown in a finally block. Nesting: Mostly shallow, though the anonymous channel initializer adds moderate nesting. Clarity of intent: The class name, documentation, and comments communicate an SCTP echo server, but single-letter variables and methods obscure individual roles; renaming main and initChannel also undermines familiar Java/Netty conventions. Code length: Compact overall, with a redundant commented-out logging statement and an unnecessarily expanded addLast call. Action granularity: Statements generally perform one action each, and bootstrap configuration places each chained operation on its own line. Reading flow: Execution proceeds naturally from setup to shutdown, but cryptic identifiers and awkward pipeline formatting interrupt comprehension.