Repository navigation
Conversation
bric3
force-pushed
the
bdu/reformat-with-prince-of-space
branch
from
September 9, 2026 21:07
4f14d64 to
28f72b5
Compare
Closed
This was referenced Oct 31, 2026
bric3
force-pushed
the
bdu/reformat-with-prince-of-space
branch
from
November 1, 2026 15:36
5eb8c5c to
79a09e5
Compare
Debugger benchmarksParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 5 unstable metrics. See unchanged results
Request duration reports for reportsgantt
title reports - request duration [CI 0.99] : candidate=None, baseline=None
dateFormat X
axisFormat %s
section baseline
noprobe (352.12 µs) : 317, 388
. : milestone, 352,
basic (327.118 µs) : 320, 334
. : milestone, 327,
loop (8.096 ms) : 8033, 8160
. : milestone, 8096,
section candidate
noprobe (364.714 µs) : 305, 425
. : milestone, 365,
basic (333.671 µs) : 329, 339
. : milestone, 334,
loop (8.102 ms) : 8040, 8164
. : milestone, 8102,
|
Contributor
Contributor
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
Kafka / producer-benchmarkParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics. See unchanged results
|
Kafka / consumer-benchmarkParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics. See unchanged results
|
bric3
force-pushed
the
bdu/reformat-with-prince-of-space
branch
from
November 1, 2026 19:44
79a09e5 to
e2a4048
Compare
bric3
force-pushed
the
bdu/reformat-with-prince-of-space
branch
from
November 2, 2026 10:52
e2a4048 to
2931a8d
Compare
bric3
force-pushed
the
bdu/reformat-with-prince-of-space
branch
from
November 2, 2026 12:19
734df03 to
2931a8d
Compare
Restore the master layout of line-sensitive Java sources and protect it with Spotless fences. Reuse the two-line package header for the opening fence so imports and executable code retain their original line numbers. - WithHardcodedSecret: keep the secret returns at lines 9 and 13 for the IAST class-reader assertions. - HardcodedSecretController: keep the secret return at line 11 for the Spring Boot IAST vulnerability-location assertion. - LambdaScaHandler: keep the reflective invocation at line 38 for the Lambda SCA reachability assertions. - DebuggerTestApplication: preserve the lines used by log, metric and span probes, including the 95-104 range. - ServerDebuggerTestApplication: preserve the code-origin line 158 and the dynamic-enablement line probe at 329. - InterfacedController: keep the controller method at line 11 for the Spring code-origin assertion. - ExceptionProbeManagerTest: preserve the exception's stack frame so its expected fingerprint remains valid. - ExceptionHelperTest: keep the exception at line 75 for the folded stack-trace assertion. - HandlerMappingResourceNameFilter: keep filterChain.doFilter at line 57 for exception-replay snapshots in the external system-tests repository.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Does This Do
Reformats 6,093 Java files with Prince of Space 2.3.1, using the configuration in #12444.
The output is regenerated from clean master sources at
3ab1b2050365377e42f546710cfdc314639476b0and contains Java formatting changes only.Representative Formatting Changes
Each diff compares google-java-format 1.36.1 on master
3ab1b20503with Prince of Space 2.3.1 on2931a8d7dc. Lambda and anonymous-class excerpts include their closing braces and parentheses.Lambda Pipelines
PluginApplication.java
Fluent Calls
AdviceGeneratorImpl.java
Nested Callbacks
CoreTracer.java
Nested Lambda Pipelines
AssertBuilder.java
protected Set<Class<?>> getSpi(ClassOrInterfaceDeclaration type) { - return type.getAnnotationByName("AutoService") - .<Set<Class<?>>>map( - annotation -> - annotation.asNormalAnnotationExpr().getPairs().stream() - .filter(pair -> pair.getNameAsString().equals("value")) - .flatMap( - pair -> - pair.getValue().asArrayInitializerExpr().getValues().stream() - .map( - value -> - value - .asClassExpr() - .getType() - .resolve() - .asReferenceType() - .getTypeDeclaration() - .get() - .getQualifiedName())) - .map(AssertBuilder::loadClass) - .collect(Collectors.toSet())) - .orElse(Collections.emptySet()); + return type + .getAnnotationByName("AutoService") + .<Set<Class<?>>>map(annotation -> annotation + .asNormalAnnotationExpr() + .getPairs() + .stream() + .filter(pair -> pair.getNameAsString().equals("value")) + .flatMap(pair -> pair + .getValue() + .asArrayInitializerExpr() + .getValues() + .stream() + .map(value -> value + .asClassExpr() + .getType() + .resolve() + .asReferenceType() + .getTypeDeclaration() + .get() + .getQualifiedName())) + .map(AssertBuilder::loadClass) + .collect(Collectors.toSet())) + .orElse(Collections.emptySet()); }Balanced Parameter Wrapping
PluginApplication.java
The configuration uses two-space indentation, a 100-character line width, balanced wrapping and Prince's default
closingParenOnNewLine(true).Lambda in an HTTP Builder Chain
SharedCommunicationObjects.java
Before (google-java-format 1.36.1):
After (Prince of Space 2.3.1):
Anonymous Classes in Method Calls
PluginApplication.java
Ternary Expressions
SharedCommunicationObjects.java
Mandatory Braces
CoreTracer.javaJavadoc Normalisation
CoreTracer.javaImport Separation
PluginApplication.javaimport static datadog.trace.plugin.csi.impl.CallSiteFactory.typeResolver; - import datadog.trace.plugin.csi.AdviceGenerator.CallSiteResult;Motivation
Keep the generated output separate from the formatter configuration. The examples use the same source sites as #12421, #12422, #13144 and #13145 for comparison.
Additional Notes
This remains a draft formatter experiment stacked on #12444.
Caution
The Prince of Space 2.3.1 / TableTest formatter 1.1.2 pipeline still requires 129 file exclusions:
These files retain their exact content from master. The exclusions are listed in
gradle/spotless.gradle.Prince 2.3.1 preserves the surrogate char literals in both
TraceGeneratorfixtures and the escaped NUL inPatchUtil, so these three files are re-enabled. The exclusions decrease from 132 to 129.ClientIpAddressResolvernow formats its IPv4 range array without the added fence: its range comments appear once and in order.TagInterceptorTestkeeps two narrowspotless:off/spotless:onfences for long TableTest arrays; their comments now identify the TableTest formatter as the component that corrupts concatenated rows.Direct API checks reproduce the TableTest failure independently of Prince. The three targeted Prince reproductions pass with 2.3.1. Other comment duplication remains: Prince 2.3.1 prints the "All bits set" field comment in
DD64bTraceIdtwice, without Spotless or the TableTest formatter.The included sources pass the preservation audit and a forced second Java formatting pass. The audit checks parsed structure, identifiers, decoded literals and constant strings, TableTest data, comment content and order, and exact fenced regions. It permits added control-flow braces, conventional comment layout and import organisation. Inline comments can move to a preceding line.
The uncached repository-wide reformat used an 8 GB Gradle daemon heap after the 4 GB run exhausted its heap. Both final passes disable the build cache following a Spotless cached-output file-move failure.
A forced rerun of all Spotless formats stalled in
:dd-smoke-tests:java9-modules:spotlessGroovyGradleand was stopped. The forced stability check therefore targets Java formatting tasks.Focused core tests use a temporary external init script to omit an unrelated private container-image lookup; test caching is disabled for that run. Full-suite tests and performance benchmarks were not run.
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issue