Sample

int-199090242094-I04

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

Matched original source

Lines19

Scores

MethodScoreScale
Posnett00–1; higher is more readable
Scalabrino0.5610–1; higher is more readable
Dorn0.0850–1; higher is more readable
Mi0.1380–1; higher is more readable
LLOC6Logical lines; fewer is more readable
DeepSeek V4 Pro3.330–20; mean of three runs
GPT-6.1 Sol130–20; mean of three runs
BTTF0.3520–1; higher is more readable

Views

Source code

package org.apache.kafka.security.authorizer; import org.apache.kafka.common.internals.Plugin; import org.apache.kafka.common.metrics.Metrics; import org.apache.kafka.common.resource.Resource; import org.apache.kafka.common.utils.Utils; import org.apache.kafka.server.authorizer.Authorizer; import java.util.Map; public class AuthorizerUtils { public static Plugin<Authorizer> a(String a, Map<String, Object> b, Metrics c, String d, String e) throws ClassNotFoundException { Authorizer f = Utils.newInstance(a, Authorizer.class); f.configure(b); return Plugin.wrapInstance(f, c, d, "role", e); } public static boolean b(String g) { return g.equals(Resource.CLUSTER_NAME); } }

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.1018.615−33.614
Source linesThe number of non-empty source lines.19+7.6
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.836−7.255

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

Score0.561

Feature contributions

FeatureValueContribution
(log-odds)
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.134−2.011
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.19+0.364
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.115−0.171
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.18.874−0.146
Indentation frequencyHow rapidly indentation changes from line to line.19−0.08

Intercept 0.07 + feature contributions = -2.381 (log-odds).
Score = sigmoid(-2.381) = 0.085.

Score0.138
Score6
Run 1

The code is severely unreadable due to meaningless single-letter names for methods, parameters, and variables (e.g., 'a', 'b', 'c', 'd', 'e', 'f', 'g'). Method names like 'a' and 'b' reveal nothing about their purpose — one appears to configure an Authorizer instance, the other checks if a string equals a cluster resource name. The class name 'AuthorizerUtils' is helpful, but the internal implementation obscures all intent. While the structure is logically simple with flat nesting, the lack of descriptive naming, missing documentation, and cryptic parameter names make the code nearly impossible to understand without deep domain knowledge. Action granularity and length are acceptable, but clarity of intent and natural reading flow are almost entirely absent. Utility methods should use clear verbs like 'createConfiguredAuthorizer' or 'isClusterResource' to convey purpose.

Run 2

The code is essentially unreadable due to heavily obfuscated naming. Method names 'a' and 'b' and parameter names 'a' through 'g' provide zero indication of intent. The class structure is minimal, which is neutral, but the lack of meaningful identifiers destroys clarity. Nesting is flat, and actions are mostly one per line, which is positive, but those qualities cannot compensate for the complete absence of semantic context. The reading flow is disorienting because the reader must infer meaning from types alone. Code length is concise, but at the cost of total opacity. This appears to be deliberately minified or de-identified source code, which is entirely inappropriate for maintainable production code.

Run 3

The code suffers from extremely poor readability due to single-letter variable names (a, b, c, d, e, f, g) that convey no meaning about their purpose. Method names 'a' and 'b' provide zero indication of their functionality - one creates an authorizer plugin while the other checks if a string is the cluster resource. The import statements are misordered with no organization. While the code structure is technically flat and concise, the complete lack of meaningful identifiers makes it nearly impossible to understand intent without extensive context. The parameter types and return values hint at functionality, but the obfuscated naming destroys clarity. Code length is appropriately short but at the expense of readability. This appears to be deliberately obfuscated or minimized code that violates Java naming conventions and basic readability principles.

Run 1

Code Structure: Two separate utility methods provide simple, logical organization. Nesting: No branches or nested blocks make the code easy to scan. Clarity of intent: Single-letter method and parameter names obscure meaning, although API calls reveal authorizer creation, configuration, wrapping, and cluster-name comparison. Code length: Concise with no unnecessary logic, but the long first-method signature reduces readability. Action granularity: Each statement performs one clear action. Reading flow: Execution proceeds naturally from instantiation to configuration to wrapping; however, cryptic identifiers and minimal spacing between package, imports, and class declaration weaken comprehension.

Run 2

Code Structure: The utility class cleanly separates authorizer creation from cluster-name checking. Nesting: Both methods are flat, with no nested control flow. Clarity of intent: API calls reveal the operations, but single-letter method and parameter names obscure their purpose and require readers to infer argument roles. Code length: The implementation is concise without unnecessary statements, although the long first method signature reduces scanability. Action granularity: Each statement performs a distinct action on its own line. Reading flow: Instantiation, configuration, and wrapping follow a natural sequence, but cryptic identifiers and tightly packed imports hinder readability.

Run 3

1. Code Structure: Two small, logically separated utility methods provide straightforward organization. 2. Nesting: No nested control flow, making the code easy to scan. 3. Clarity of intent: Single-letter method and parameter names obscure purposes and roles, although API calls reveal authorizer initialization and cluster-name comparison. 4. Code length: Concise, with no unnecessary logic, but the long first method signature reduces readability. 5. Action granularity: Each statement performs one clear action. 6. Reading flow: Authorizer creation, configuration, and wrapping follow a natural sequence; limited spacing around imports and opaque identifiers weaken the overall flow.