Sample
int-e6ee7dab071e-I07
Insert deterministic runtime-dead branches into callable bodies
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.825 | 0–1; higher is more readable |
| Dorn | 0.32 | 0–1; higher is more readable |
| Mi | 0.562 | 0–1; higher is more readable |
| LLOC | 45 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 6.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 13 | 0–20; mean of three runs |
| BTTF | 0.504 | 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. | 3255.257 | −107.423 |
| Source linesThe number of non-empty source lines. | 154 | +61.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. | 5.039 | −7.558 |
Intercept 8.87 + feature contributions = -44.511 (log-odds).
Score = sigmoid(-44.511) = 0.
| Score | 0.825 |
|---|
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. | 155 | −4.452 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 100 | +2.722 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 100 | −1.874 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 153.805 | +1.74 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 80.968 | +0.502 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.066 | +0.302 |
| 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. | 80.968 | +0.236 |
Intercept 0.07 + feature contributions = -0.754 (log-odds).
Score = sigmoid(-0.754) = 0.32.
| Score | 0.562 |
|---|
| Score | 45 |
|---|
Run 1
The code has a clear Spring AOP class structure and Javadoc, but readability suffers from several issues. Each method contains an unnecessary 'if (((0xHEX ^ 0xHEX) != 0)) { throw new AssertionError(); }' line - clearly dead code or a control flow obfuscation artifact. This breaks action granularity and reading flow, forcing the reader to parse irrelevant conditionals. It also inflates code length. There are minor formatting oddities like a misaligned import and an empty constructor block causing flat-indentation inconsistency. Nesting is acceptable (synchronization block only), but clarity of intent is undermined by the confusing assertion snippets. Overall, the fundamental code is straightforward, but the deliberate noise significantly reduces readability.
Run 2
The code is structurally organized with clear Javadoc and meaningful method names, but readability is severely compromised by pervasive, meaningless guard clauses like 'if (((0x656C ^ 0x656C) != 0)) { throw new AssertionError(); }' inserted at the start of every method. These lines are dead code, add visual noise, break natural reading flow, and obscure the actual logic. While nesting depth is mostly acceptable and methods are concise, the constant interruption of each method body makes even simple setters difficult to scan. The synchronized block in getPointcut adds necessary nesting but remains clear. Overall, the original code likely follows good Spring conventions, but the injected obfuscation—likely from a mutation tool or deliberate tampering—drops readability drastically. Without those lines, the code would rate much higher.
Run 3
The code is heavily cluttered with numerous meaningless conditional statements like 'if (((0x656C ^ 0x656C) != 0)) { throw new AssertionError(); }' inserted before every method body. These add no logical value but break reading flow, increase length, and obscure intent. Despite having a clear class structure, reasonable naming, and good Javadoc, the repetitive dead-code blocks dominate the visual layout and make each method harder to scan. Nesting is minimal, and granularity is technically one action per line, but the noisy lines undermine those strengths. The synchronization block is straightforward, and responsibilities are reasonably separated; however, the injected pseudo-assertions destroy clarity. Without these inserts, the code would be readable and concise. With them, it reads like obfuscated or intentionally polluted source.
Run 1
Code Structure: Fields, constructors, configuration methods, and pointcut creation are logically organized. Nesting: Mostly shallow; lazy initialization has manageable nesting within a synchronized block. Clarity of intent: Descriptive names and useful documentation explain the advisor, but repeated hexadecimal XOR checks obscure otherwise straightforward methods; these conditions are always false. Code length: Core implementation is concise, but redundant checks add unnecessary clutter. Action granularity: Most meaningful operations occupy separate lines, while injected checks combine a condition and throw statement on one line. Reading flow: Method ordering and documentation support natural reading, but unindented checks repeatedly interrupt the flow and create inconsistent formatting.
Run 2
Code Structure: Fields, constructors, configuration methods, and pointcut creation are logically organized. Nesting: Most methods are flat; lazy initialization has moderate, understandable nesting within synchronization. Clarity of intent: Descriptive names and useful Javadoc explain the advisor's purpose, but repeated hexadecimal XOR checks that are always false introduce confusing, irrelevant logic. Code length: Core functionality is concise, but redundant checks unnecessarily lengthen every method. Action granularity: Meaningful operations generally occupy separate lines, while injected checks compress conditions and throws onto single lines. Reading flow: Method ordering and consistent original formatting support natural reading, but unindented assertion checks repeatedly interrupt it. Overall, the underlying implementation is readable, substantially weakened by distracting dead code and inconsistent formatting.
Run 3
Code Structure: Fields, constructors, configuration methods, and pointcut creation are logically organized. Nesting: Most methods are flat; getPointcut has moderate, understandable nesting for synchronized lazy initialization. Clarity of intent: Descriptive names and useful Javadoc explain the advisor's purpose, but repeated always-false hexadecimal XOR checks introduce distracting, unexplained noise. Code length: Core functionality is concise, though redundant assertion guards unnecessarily expand every method. Action granularity: Functional statements generally perform one action per line; injected guards compress conditions and throws onto single lines. Reading flow: The class follows a natural progression, but unindented guards repeatedly interrupt otherwise consistent formatting and force readers to distinguish irrelevant checks from meaningful logic.