Sample

Dorn/java/162

Human rating uses the original dataset scale.

DatasetDorn
Human2.61
Lines50

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
15.0Δ 0.0
Scalabrino0.420–1; higher is more readable
31.4Δ 16.4
Dorn0.5230–1; higher is more readable
44.8Δ 29.8
Mi0.5460–1; higher is more readable
57.9Δ 42.9
LLOC17Logical lines; fewer is more readable
41.2Δ 26.2
DeepSeek V4 Pro50–20; mean of three runs
10.9Δ 4.2
GPT-6.1 Sol120–20; mean of three runs
19.9Δ 4.9
BTTF0.5310–1; higher is more readable
54.3Δ 39.3
Human2.611–5; original rating
15.0

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

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.1906.752−62.923
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.836−7.254

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

Score0.42

Feature contributions

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

Intercept 0.07 + feature contributions = 0.091 (log-odds).
Score = sigmoid(0.091) = 0.523.

Score0.546
Score17
Run 1

This code is difficult to read due to multiple issues. The structure is tangled, with an incomplete method signature at the start and a second method abruptly cut off mid-definition, making the logical organization unclear. Nesting is excessive: a try block contains another try-catch, which itself has multiple nested conditionals for exception handling, creating deep indentation levels. Intent is somewhat obscured by generated-looking, repetitive boilerplate code typical of auto-generated service utilities. The code is unnecessarily verbose—fully qualified class names are used everywhere instead of imports, and the exception handling logic is extremely repetitive. Action granularity is poor in places, with multiple actions and checks crammed into single catch blocks. Reading flow is disorganized, jumping between method definitions and mixing concerns. While individual lines are somewhat understandable for developers familiar with Liferay patterns, the overall structure and incompleteness make it nearly unreadable as presented.

Run 2

The code is difficult to read due to its verbose, fully-qualified class names that obscure the logic. The structure is tangled by deeply nested try-catch blocks, with error handling that could be simplified. While the intent is somewhat clear (updating a layout set prototype via a tunnel), the long variable declarations and repetitive exception handling make it unnecessarily lengthy. Action granularity is poor as method declarations and parameter lists are broken awkwardly across lines. The reading flow is disrupted by having to mentally parse FQCNs and multiple catch blocks. Some structure exists but is buried under boilerplate.

Run 3

The code suffers from severe readability issues. Fully-qualified class names create extreme visual noise and verbosity, obscuring the logic. The structure is tangled: nested try-catch blocks with sequential instanceof checks and re-throws add unnecessary complexity and indentation. Method names are repeated with numeric suffixes (e.g., _updateLayoutSetPrototypeParameterTypes4), indicating auto-generated code with poor abstraction. Action granularity is inconsistent - some lines contain multiple operations while others are fragmented. The reading flow is disorganized due to the dense exception handling and repetitive boilerplate. No meaningful comments or documentation exist. The code lacks imports, making it harder to scan. Overall, it appears to be auto-generated Liferay service code that prioritizes functionality over human readability.

Run 1

Code Structure: Method setup, invocation, exception translation, and logging are logically grouped, but the incomplete excerpt obscures method boundaries. Nesting: Nested try/catch blocks and conditional exception checks add moderate depth. Clarity of intent: Descriptive method and variable names clarify the remote update operation, while reflection-style dispatch and numbered parameter-type fields require additional context. Code length: Repeated exception handling and fully qualified class names make the code verbose. Action granularity: Statements generally perform one action each, with multiline argument lists remaining coherent. Reading flow: Execution follows a predictable setup-invoke-return sequence, but long type names, casts, and exception branches interrupt the main path.

Run 2

Code Structure: The service-wrapper pattern is logically organized, but the excerpt starts and ends mid-method, limiting comprehension. Nesting: Nested try/catch blocks and exception-type checks add moderate depth. Clarity of intent: Descriptive method and parameter names convey the update operation, although reflective invocation and numbered parameter-type fields obscure details. Code length: Exception-handling boilerplate, repeated wrapper setup, and fully qualified types make the code verbose. Action granularity: Statements generally perform one action each, with multiline arguments grouped sensibly. Reading flow: Construction, invocation, exception translation, and return follow a natural sequence, but long type names, repeated casts, and the incomplete boundaries interrupt scanning.

Run 3

Code Structure: The service-call setup, invocation, and exception handling are logically grouped, but the fragment starts and ends mid-method. Nesting: Nested try/catch blocks and exception checks add moderate complexity. Clarity of intent: Descriptive method and variable names communicate the update operation, though reflective dispatch and numbered parameter-type fields obscure details. Code length: Fully qualified class names, repeated exception handling, and similar overload boilerplate make the code verbose. Action granularity: Statements generally perform one action each, with arguments split across lines for readability. Reading flow: Execution proceeds naturally from method setup to invocation and return, but long type names, exception branches, and incomplete boundaries interrupt the flow.