Sample
int-32be634280bb-I03
Replace method, parameter, and local names with length-matched, meaningful but unrelated names
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.65 | 0–1; higher is more readable |
| Dorn | 0.649 | 0–1; higher is more readable |
| Mi | 0.091 | 0–1; higher is more readable |
| LLOC | 18 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 7 | 0–20; mean of three runs |
| GPT-6.1 Sol | 13.67 | 0–20; mean of three runs |
| BTTF | 0.483 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (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. | 2427.599 | −80.111 |
| Source linesThe number of non-empty source lines. | 71 | +28.4 |
| 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.922 | −7.383 |
Intercept 8.87 + feature contributions = -50.224 (log-odds).
Score = sigmoid(-50.224) = 0.
| Score | 0.65 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 72 | −1.513 |
| 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. | 117.986 | −1.332 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 55 | +1.165 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 105 | +0.89 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 70.916 | +0.581 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.06 | +0.357 |
Intercept 0.07 + feature contributions = 0.616 (log-odds).
Score = sigmoid(0.616) = 0.649.
| Score | 0.091 |
|---|
| Score | 18 |
|---|
Run 1
The code structure is logical with a clear delegate pattern, but variable naming is confusing and misleading. For example, 'session' (expected map) is fine, but 'activeRequest' and 'defaultAddress' are used as configuration map and list parameters in summarize(), which are generic types; naming them 'jaasOptions' and 'jaasEntries' would be clearer. 'pendingBalance' for a URL, 'map' for ConfigurationUtils, and 'defaultAddress' for AppConfigurationEntry list are jarring. The 'readUser()' method returning delegate is poorly named. Nesting is minimal and flat. Intent is somewhat clearbut obscured by naming. Code length is concise, but readability suffers from poor naming choices and inconsistent method names relative to their actual behavior. Reading flow is natural, but misleading names interrupt comprehension.
Run 2
The code has a clear overall purpose and a single responsibility, but suffers from several readability issues. The class structure is simple, but the method `summarize` has confusing parameter names (`session`, `activeRequest`, `defaultAddress`) that do not match their actual meaning or the method's intent. The variable names inside `summarize` (`map`, `pendingBalance`) are also misleading, making the code harder to follow. Nesting is low, which is good, but the logic flow is not intuitive. The `readPath` method delegates to `delegate.retrieve()`, which is inconsistent naming. `reset` uses `Utils.closeQuietly` but does not show how the delegate is set to null. Overall, the code is concise but not clear, and the misleading naming significantly hurts readability.
Run 3
The code has a logical overall structure—one public class with clear delegation and concise methods—but its clarity is severely undermined by misleading method and variable names. For example, the `summarize` method actually configures the retriever, `readPath` returns a token, and `readUser` returns the delegate. Variables like `pendingBalance`, `defaultAddress`, and `map` are semantically disconnected from their true purposes. The code is relatively flat, with only one level of if/else nesting, and actions are mostly one per line. However, the mismatch between names and behavior makes it very hard to understand the method's intent without deep domain knowledge. The documentation in the class-level Javadoc is clear, but the implementation does not follow that clarity, resulting in low readability despite short length and simple structure.
Run 1
Code Structure: A small delegation class with clearly separated initialization, retrieval, cleanup, and accessor responsibilities. Nesting: Shallow conditionals make control flow easy to follow, although omitted braces reduce visual clarity. Clarity of intent: The main weakness is misleading names: summarize initializes configuration, readPath retrieves a JWT, reset closes resources, and readUser exposes the delegate. Variables such as pendingBalance and defaultAddress do not describe their actual roles. The error message references configure(), while the visible initialization method is summarize(), further confusing the API. Code length: Implementation is concise, though the documentation is comparatively lengthy and describes formatter selection rather than the actual delegate selection. Action granularity: Statements generally perform one action per line. Reading flow: Methods follow a natural lifecycle sequence, but inconsistent terminology and tightly packed imports interrupt comprehension.
Run 2
Code Structure: The class is logically organized around initializing and forwarding to a delegate, with small, focused methods. Nesting: Minimal nesting and simple conditionals make control flow easy to follow, although omitted braces reduce visual explicitness. Clarity of intent: Misleading names such as summarize, readPath, reset, readUser, pendingBalance, and defaultAddress obscure configuration, retrieval, and cleanup responsibilities. The exception references configure(), while the exposed initialization method is summarize(), and documentation describes formatter selection rather than the actual retriever selection. Code length: The implementation is concise, though its documentation is disproportionately long and partly misleading. Action granularity: Statements generally perform one action per line, with clear separation between validation, delegate creation, logging, and configuration. Reading flow: Initialization followed by retrieval, cleanup, and delegate access provides a natural progression, but inconsistent terminology and tightly packed imports interrupt comprehension.
Run 3
Code Structure: The class is logically organized around selecting and delegating to a JWT retriever, with small, separate methods. Nesting: Control flow is shallow and easy to follow, although omitted braces slightly weaken visual clarity. Clarity of intent: The main weakness is misleading naming: summarize, readPath, reset, readUser, map, and pendingBalance do not clearly describe configuration, retrieval, cleanup, or the endpoint URL. Documentation and the exception message refer to configure(), while the exposed method is summarize(), creating further confusion. Code length: The implementation is concise; the documentation is comparatively lengthy and misleadingly describes request formatters as the delegated implementations. Action granularity: Statements generally perform one action per line. Reading flow: Configuration, retrieval, cleanup, and delegate access follow a natural sequence, but inconsistent terminology and tightly packed imports interrupt readability.