This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new 3ab2d1e856 Strip stale bug/issue/TODO tracker references from code
comments (TODO-268)
3ab2d1e856 is described below
commit 3ab2d1e856c60b863c0fdee08e6e6e7d445b85b5
Author: James Bognar <[email protected]>
AuthorDate: Thu Jul 23 10:13:41 2026 -0400
Strip stale bug/issue/TODO tracker references from code comments (TODO-268)
Reactor-wide sweep across 98 files (17 modules, main + test) removing
comment-only references such as `Bug #N`, `TODO-N`, `FINISHED/MAYBE-N`,
`work item N`, and `Decision #N` that point at the gitignored
`.work/todo` tracker, which is inaccessible to outside contributors.
Where the surrounding comment explained genuine non-obvious intent, the
explanation was kept and reworded to stand on its own; comments that
existed only to reference a tracker were deleted. Comment-only change,
no code/behavior changes.
Excludes 3 files (BeanInstantiator_Test, Value_StableFolding_Test,
Settings_NoLeakedSources_Test) where the same cleanup also touched
string literals (@DisplayName / assertion messages), left for separate
review.
Co-authored-by: Cursor <[email protected]>
---
.../bean/mcp/JsonSchema_Finiteness_Test.java | 2 +-
.../inject/BasicBeanStore_PushPopOverlay_Test.java | 2 +-
.../apache/juneau/commons/inject/Value_Test.java | 8 ++++----
.../apache/juneau/commons/svl/ArgCoercer_Test.java | 4 ++--
.../svl/ScriptSegment_Precompiled_Test.java | 2 +-
.../commons/svl/VarFunctionDiscovery_Test.java | 2 +-
.../juneau/commons/svl/VarFunction_Test.java | 2 +-
.../juneau/commons/utils/StringUtils_Test.java | 10 ++++-----
.../marshall/jena/RdfStreamParserSession.java | 2 +-
.../transforms/CalendarFormat_RoundTrip_Test.java | 2 +-
.../transforms/DurationFormat_RoundTrip_Test.java | 2 +-
.../FloatFormat_Double_RoundTrip_Test.java | 10 ++++-----
.../juneau/marshall/bson/BsonParserSession.java | 2 +-
.../juneau/marshall/hjson/HjsonParserSession.java | 8 ++++----
.../juneau/marshall/hocon/HoconParserSession.java | 24 +++++++++++-----------
.../juneau/marshall/ini/IniParserSession.java | 2 +-
.../marshall/parquet/ParquetParserSession.java | 12 +++++------
.../marshall/parquet/ParquetSerializerSession.java | 2 +-
.../marshall/prototext/PrototextParserSession.java | 22 ++++++++++----------
.../prototext/PrototextSerializerSession.java | 2 +-
.../marshall/prototext/PrototextTokenizer.java | 2 +-
.../juneau/marshall/toml/TomlParserSession.java | 8 ++++----
.../marshall/toml/TomlSerializerSession.java | 4 ++--
.../MarshalledPropertyPostProcessor_Test.java | 4 ++--
.../marshall/hocon/HoconParserSession_Test.java | 4 ++--
.../juneau/marshall/hocon/HoconParser_Test.java | 2 +-
.../juneau/marshall/json/JsonParser_Test.java | 2 +-
.../markdown/MarkdownParserSession_Test.java | 2 +-
.../marshall/parquet/ParquetLogicalType_Test.java | 2 +-
.../juneau/marshall/parser/ParserSession_Test.java | 2 +-
.../prototext/PrototextSerializerSession_Test.java | 2 +-
.../transforms/CalendarFormat_RoundTrip_Test.java | 2 +-
.../ClassFormatSwap_SessionClassLoader_Test.java | 2 +-
.../transforms/DurationFormat_RoundTrip_Test.java | 2 +-
.../FloatFormat_Double_RoundTrip_Test.java | 10 ++++-----
.../bct/BctConfiguration_ValueAdoption_Test.java | 2 +-
.../JuneauBeanStoreExtension_ClassScope_Test.java | 2 +-
.../a/rttests/ParentProperty_RoundTripTest.java | 2 +-
.../TraceContextResponseProcessor_Test.java | 2 +-
.../reactive/ReactiveResponseProcessor_Test.java | 2 +-
.../juneau/rest/server/LazyChildren_Test.java | 2 +-
.../server/RestContext_ValueAdoption_Test.java | 2 +-
.../RestContext_ValueAgainstConfig_Test.java | 2 +-
...estInheritedProps_NonMixin_Regression_Test.java | 2 +-
.../AuthFilterChain_GuardIntegration_Test.java | 4 ++--
.../jwt/JwtTokenValidator_ValueAdoption_Test.java | 2 +-
.../BasicConvention_ParentChain_Test.java | 4 ++--
.../convention/VersionMixin_AsMixin_Test.java | 4 ++--
.../VersionMixin_JettyMicroservice_Test.java | 4 ++--
.../convention/VersionMixin_Springboot_Test.java | 6 +++---
.../VersionMixin_SvlPathOverride_Test.java | 2 +-
.../VersionMixin_ValueAdoption_Test.java | 2 +-
.../server/docs/SwaggerMixin_Standalone_Test.java | 2 +-
.../server/docs/SwaggerUiMixin_AsMixin_Test.java | 2 +-
.../logger/CallLogger_ValueAdoption_Test.java | 2 +-
.../ops/AdminMixin_AuthIntegration_Test.java | 4 ++--
.../ops/AdminMixin_RateLimitSnapshot_Test.java | 2 +-
.../server/ops/BasicOps_OpenApiHidden_Test.java | 2 +-
.../rest/server/ops/BasicOps_ParentChain_Test.java | 4 ++--
.../rest/server/ops/EchoMixin_AsMixin_Test.java | 4 ++--
.../ops/EchoMixin_JettyMicroservice_Test.java | 2 +-
.../rest/server/ops/EchoMixin_Springboot_Test.java | 2 +-
.../server/ops/EchoMixin_SvlPathOverride_Test.java | 2 +-
.../server/ops/RouteIndexMixin_AsMixin_Test.java | 4 ++--
.../ops/RouteIndexMixin_SvlPathOverride_Test.java | 2 +-
.../server/servlet/RestMixin_HostContext_Test.java | 2 +-
.../RestPathsRuntimeOverride_Springboot_Test.java | 2 +-
.../staticfile/StaticFilesMixin_AsMixin_Test.java | 2 +-
.../StaticFilesMixin_CacheControl_Test.java | 2 +-
.../StaticFilesMixin_ImporterOverride_Test.java | 2 +-
.../StaticFilesMixin_JettyMicroservice_Test.java | 6 +++---
.../StaticFilesMixin_OpenApiHidden_Test.java | 2 +-
.../StaticFilesMixin_SpringbootMetaInf_Test.java | 2 +-
.../StaticFilesMixin_Springboot_Test.java | 2 +-
.../StaticFilesMixin_Standalone_Test.java | 2 +-
.../StaticFilesMixin_SvlPathOverride_Test.java | 2 +-
.../freemarker/FreemarkerMixin_MockRest_Test.java | 2 +-
.../RestPathsRuntimeOverride_JettyMount_Test.java | 2 +-
.../Microservice_ValueAdoption_Test.java | 2 +-
.../springboot/PetstoreSpringboot_Test.java | 2 +-
.../FluentResponseHeaderAssertion_Test.java | 2 +-
.../mock/MockRestClient_TestOverride_Test.java | 2 +-
.../reactive/ReactiveOptIn_BareServer_Test.java | 2 +-
.../juneau/rest/server/auth/jwt/JwksCache.java | 2 +-
.../jwt/JwtTokenValidator_ValueAdoption_Test.java | 2 +-
.../reactive/ReactiveResponseProcessor_Test.java | 2 +-
.../convention/VersionMixin_Springboot_Test.java | 6 +++---
.../rest/server/ops/EchoMixin_Springboot_Test.java | 2 +-
.../RestPathsRuntimeOverride_Springboot_Test.java | 2 +-
.../StaticFilesMixin_SpringbootMetaInf_Test.java | 2 +-
.../StaticFilesMixin_Springboot_Test.java | 2 +-
.../TraceContextResponseProcessor_Test.java | 2 +-
.../freemarker/FreemarkerMixin_MockRest_Test.java | 2 +-
.../org/apache/juneau/rest/server/RestContext.java | 11 +++++-----
.../apache/juneau/rest/server/RestOpContext.java | 2 +-
.../FluentRequestFormParamAssertion_Test.java | 2 +-
.../FluentRequestHeaderAssertion_Test.java | 2 +-
.../FluentRequestQueryParamAssertion_Test.java | 2 +-
98 files changed, 167 insertions(+), 168 deletions(-)
diff --git
a/juneau-bean/juneau-bean-mcp/src/test/java/org/apache/juneau/bean/mcp/JsonSchema_Finiteness_Test.java
b/juneau-bean/juneau-bean-mcp/src/test/java/org/apache/juneau/bean/mcp/JsonSchema_Finiteness_Test.java
index 7dbe3fdff7..dae95614d9 100644
---
a/juneau-bean/juneau-bean-mcp/src/test/java/org/apache/juneau/bean/mcp/JsonSchema_Finiteness_Test.java
+++
b/juneau-bean/juneau-bean-mcp/src/test/java/org/apache/juneau/bean/mcp/JsonSchema_Finiteness_Test.java
@@ -32,7 +32,7 @@ import org.junit.jupiter.api.*;
* contract treats it as an <b>acyclic-by-wire DAG</b>: schemas are assembled
bottom-up (each child is fully
* built before it is attached to a parent), so there is no supported way to
manufacture a cycle over the wire.
* These tests pin that invariant — {@code toString()} and JSON serialization
over a deeply-nested schema
- * terminate finitely (no depth blow-up / infinite recursion). Mirrors the
{@code juneau-marshall} TODO-253
+ * terminate finitely (no depth blow-up / infinite recursion). Mirrors the
{@code juneau-marshall}
* {@code HttpPartSchema} deep-nesting finiteness anchor.
*/
class JsonSchema_Finiteness_Test {
diff --git
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/inject/BasicBeanStore_PushPopOverlay_Test.java
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/inject/BasicBeanStore_PushPopOverlay_Test.java
index 3c59b21d20..d6b828f69e 100644
---
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/inject/BasicBeanStore_PushPopOverlay_Test.java
+++
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/inject/BasicBeanStore_PushPopOverlay_Test.java
@@ -25,7 +25,7 @@ import org.junit.jupiter.api.*;
* Tests for {@link BasicBeanStore#pushOverlay(BeanStore)} / {@link
BasicBeanStore#popOverlay(Snapshot)}.
*
* <p>
- * Validates the Phase 6 (Mode OVERLAY) push/pop overlay primitive on {@link
BasicBeanStore} (work item 35):
+ * Validates the Phase 6 (Mode OVERLAY) push/pop overlay primitive on {@link
BasicBeanStore}:
* overlay precedence over local entries and the construction-time {@code
overridingParent} slot, LIFO
* discipline, foreign-snapshot rejection, null-overlay rejection, empty-stack
pop rejection, and the
* happy-path lookup-shadow-then-restore semantics that the {@code
JuneauBeanStoreExtension} Mode OVERLAY
diff --git
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/inject/Value_Test.java
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/inject/Value_Test.java
index 840684d66c..0d8a5a2a1d 100644
---
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/inject/Value_Test.java
+++
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/inject/Value_Test.java
@@ -138,7 +138,7 @@ class Value_Test extends TestBase {
}
}
- /** Setter that accepts an {@code Optional<String>} @Value parameter —
worked example of the FINISHED-128 fix. */
+ /** Setter that accepts an {@code Optional<String>} @Value parameter —
worked example of the fix. */
public static class OptionalSetterBean {
Optional<String> maybe;
@@ -148,7 +148,7 @@ class Value_Test extends TestBase {
}
}
- /** Constructor that mixes a plain and an Optional @Value parameter —
worked example of the FINISHED-128 fix. */
+ /** Constructor that mixes a plain and an Optional @Value parameter —
worked example of the fix. */
public static class OptionalConstructorBean {
final String plain;
final Optional<String> maybe;
@@ -302,7 +302,7 @@ class Value_Test extends TestBase {
assertEquals("from-settings", bean.field);
}
- // FINISHED-128 worked example: Optional<T> setter parameter previously
threw IAE at reflective invoke.
+ // Worked example: Optional<T> setter parameter previously threw IAE at
reflective invoke.
@Test
void c03_setter_optionalParam_missing_isEmpty() {
var bean = BeanInstantiator.of(OptionalSetterBean.class,
beanStore).run();
@@ -319,7 +319,7 @@ class Value_Test extends TestBase {
assertEquals("setter-opt", bean.maybe.get());
}
- // FINISHED-128 worked example: Optional<T> constructor parameter.
+ // Worked example: Optional<T> constructor parameter.
@Test
void b03_constructorParam_optionalMissing_isEmpty() {
var bean = BeanInstantiator.of(OptionalConstructorBean.class,
beanStore).run();
diff --git
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/ArgCoercer_Test.java
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/ArgCoercer_Test.java
index e575c5f52c..e9237efed5 100644
---
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/ArgCoercer_Test.java
+++
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/ArgCoercer_Test.java
@@ -62,7 +62,7 @@ class ArgCoercer_Test extends TestBase {
/**
* Function with a non-final {@code String[]} param so it triggers
JSON-array shortcut
- * coercion (rather than variadic gather) per OQA #7.
+ * coercion (rather than variadic gather).
*/
public static class JsonArrFn extends TypedFunction {
@Override public String name() { return "jsonArr"; }
@@ -127,7 +127,7 @@ class ArgCoercer_Test extends TestBase {
// JSON-array shortcut form must be quoted in the script body
so the recursive-descent
// parser doesn't split on the inner commas. Once delivered to
ArgCoercer as a single
// String, the JSON-array parse handles the rest. The String[]
slot must be NON-final
- // for JSON-array coercion to apply (a final String[] is
variadic per OQA #7's "final
+ // for JSON-array coercion to apply (a final String[] is
variadic per the "final
// slot collects excess" rule).
assertEquals("X=[a, b, c]",
vr().resolve("#{jsonArr(\"[\\\"a\\\",\\\"b\\\",\\\"c\\\"]\", X)}"));
}
diff --git
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/ScriptSegment_Precompiled_Test.java
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/ScriptSegment_Precompiled_Test.java
index 91e38b60f6..7bb4dcc834 100644
---
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/ScriptSegment_Precompiled_Test.java
+++
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/ScriptSegment_Precompiled_Test.java
@@ -28,7 +28,7 @@ import org.junit.jupiter.api.*;
* function references at compile time and reuses them on every subsequent
resolve.
*
* <p>
- * Acceptance bar (Phase G #3): {@code
vr.compile("#{upper(${name})}").resolve(session)}
+ * Acceptance bar: {@code vr.compile("#{upper(${name})}").resolve(session)}
* performs zero function-registry lookups and zero string tokenization on the
second-and-
* subsequent {@code .resolve(...)} calls. The cached {@code VarFunction}
reference lives
* on the {@link ScriptSegment} produced at compile time; arg templates are
themselves
diff --git
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/VarFunctionDiscovery_Test.java
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/VarFunctionDiscovery_Test.java
index 2058cdd7bc..bec3087f32 100644
---
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/VarFunctionDiscovery_Test.java
+++
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/VarFunctionDiscovery_Test.java
@@ -52,7 +52,7 @@ class VarFunctionDiscovery_Test extends TestBase {
}
@Test void unknownFunctionFailsLazily() {
- // Unknown function name resolves to an exception at
resolve-time per OQA #4.
+ // Unknown function name resolves to an exception at
resolve-time.
var vr = VarResolver.DEFAULT;
var ex = assertThrows(IllegalArgumentException.class, () ->
vr.resolve("#{nosuchfn(x)}"));
assertTrue(ex.getMessage().contains("nosuchfn"), () ->
"Expected message to mention function name; got: " + ex.getMessage());
diff --git
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/VarFunction_Test.java
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/VarFunction_Test.java
index 696673527f..5afe53f214 100644
---
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/VarFunction_Test.java
+++
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/svl/VarFunction_Test.java
@@ -102,7 +102,7 @@ class VarFunction_Test extends TestBase {
@Test void a06_unknownFunctionLazyFail() {
var vr = VarResolver.create().build();
- // Compile succeeds (lazy-fail per OQA #4)…
+ // Compile succeeds (lazy-fail)…
var tpl = vr.compile("hello #{nope()} world");
assertNotNull(tpl);
// …but resolve throws.
diff --git
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/utils/StringUtils_Test.java
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/utils/StringUtils_Test.java
index 720e120965..25700afafb 100755
---
a/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/utils/StringUtils_Test.java
+++
b/juneau-core/juneau-commons/src/test/java/org/apache/juneau/commons/utils/StringUtils_Test.java
@@ -2693,7 +2693,7 @@ class StringUtils_Test extends TestBase {
assertTrue(isNumeric("-#123"));
assertEquals(-0x123, parseNumber("-#123", null));
- // Decimal — Bug #5 fix: auto-detect returns Double, not Float.
+ // Decimal — auto-detect returns Double, not Float.
assertTrue(isNumeric("0.123"));
assertEquals(0.123d, parseNumber("0.123", null));
@@ -2715,7 +2715,7 @@ class StringUtils_Test extends TestBase {
assertTrue(isNumeric("0.16666666666666666d"));
assertEquals(0.16666666666666666d,
parseNumber("0.16666666666666666d", null));
- // Bug #5 fix: auto-detect always returns Double for max
precision.
+ // Auto-detect always returns Double for max precision.
assertTrue(isNumeric("0.16666666f"));
assertEquals(Double.valueOf("0.16666666f"),
parseNumber("0.16666666f", null));
@@ -2819,7 +2819,7 @@ class StringUtils_Test extends TestBase {
assertEquals(1.2345678901234568E20, parseNumber(s, null));
// Autodetected floating point numbers.
- // Bug #5 fix: auto-detect always returns Double now
(highest-precision Java tier).
+ // Auto-detect always returns Double now (highest-precision
Java tier).
// Float is only returned when the caller explicitly requests
Float.class / Float.TYPE.
s = String.valueOf(Float.MAX_VALUE / 2);
assertTrue(isNumeric(s));
@@ -2920,7 +2920,7 @@ class StringUtils_Test extends TestBase {
assertEquals(1000000, parseNumber("1_000_000", null));
assertEquals(1000000000, parseNumber("1_000_000_000", null));
- // Bug #5 fix: auto-detect returns Double, not Float.
+ // Auto-detect returns Double, not Float.
assertEquals(1000.5d, parseNumber("1_000.5", null));
// Error cases
@@ -4605,7 +4605,7 @@ class StringUtils_Test extends TestBase {
assertEquals(0x123, parseNumber("0x123", null));
assertEquals(-0x123, parseNumber("-0x123", null));
- // Decimal — Bug #5 fix: auto-detect returns Double, not Float.
+ // Decimal — auto-detect returns Double, not Float.
assertEquals(0.123d, parseNumber("0.123", null));
assertEquals(-0.123d, parseNumber("-0.123", null));
diff --git
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/marshall/jena/RdfStreamParserSession.java
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/marshall/jena/RdfStreamParserSession.java
index 52d819076f..d97ec812d5 100644
---
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/marshall/jena/RdfStreamParserSession.java
+++
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/marshall/jena/RdfStreamParserSession.java
@@ -132,7 +132,7 @@ public class RdfStreamParserSession extends
InputStreamParserSession {
@Override /* InputStreamParserSession */
public boolean hasNativeBytes() {
// The RDF graph layer has no native byte-array literal type —
byte[] is surfaced either as an
- // xsd:base64Binary typed literal (at BinaryFormat.NOT_SET; Bug
#11 fix) or as a plain string literal
+ // xsd:base64Binary typed literal (at BinaryFormat.NOT_SET) or
as a plain string literal
// carrying the configured BinaryFormat's text wire form (at
any other BinaryFormat; BinarySwap fires
// to reverse the wire form back to byte[]).
return false;
diff --git
a/juneau-core/juneau-marshall-rdf/src/test/java/org/apache/juneau/marshall/transforms/CalendarFormat_RoundTrip_Test.java
b/juneau-core/juneau-marshall-rdf/src/test/java/org/apache/juneau/marshall/transforms/CalendarFormat_RoundTrip_Test.java
index ec90a64d4e..6bfcd6a27c 100644
---
a/juneau-core/juneau-marshall-rdf/src/test/java/org/apache/juneau/marshall/transforms/CalendarFormat_RoundTrip_Test.java
+++
b/juneau-core/juneau-marshall-rdf/src/test/java/org/apache/juneau/marshall/transforms/CalendarFormat_RoundTrip_Test.java
@@ -233,7 +233,7 @@ class CalendarFormat_RoundTrip_Test extends TestBase {
// a HOCON-specific parsing issue when used with {@link
CalendarFormat#BASIC_ISO_DATE} (the colon-less
// offset "+0900" was emitted unquoted by the HOCON serializer and
tripped a parser-side recursion
// bug); both the HOCON serializer's QUOTE_VALUE_CHARS set and the
parser-side recursion guard have
- // been fixed (Bug #15) so positive offsets now round-trip correctly.
+ // been fixed so positive offsets now round-trip correctly.
//
public static class A03Bean {
public Calendar ny;
diff --git
a/juneau-core/juneau-marshall-rdf/src/test/java/org/apache/juneau/marshall/transforms/DurationFormat_RoundTrip_Test.java
b/juneau-core/juneau-marshall-rdf/src/test/java/org/apache/juneau/marshall/transforms/DurationFormat_RoundTrip_Test.java
index b4958d1675..b56f385d84 100644
---
a/juneau-core/juneau-marshall-rdf/src/test/java/org/apache/juneau/marshall/transforms/DurationFormat_RoundTrip_Test.java
+++
b/juneau-core/juneau-marshall-rdf/src/test/java/org/apache/juneau/marshall/transforms/DurationFormat_RoundTrip_Test.java
@@ -33,7 +33,7 @@ import org.junit.jupiter.params.provider.*;
* Cross-pair round-trip coverage for {@link DurationFormat} across every
supported serializer/parser pair.
*
* <p>
- * This is the pilot test for the work item 50/work item 54 format-control
round-trip pattern. It varies the
+ * This is the pilot test for the format-control round-trip pattern. It
varies the
* {@link DurationFormat} setting on both the serializer and parser builders
for each tester template, then
* round-trips representative {@link Duration} values:
* <ul>
diff --git
a/juneau-core/juneau-marshall-rdf/src/test/java/org/apache/juneau/marshall/transforms/FloatFormat_Double_RoundTrip_Test.java
b/juneau-core/juneau-marshall-rdf/src/test/java/org/apache/juneau/marshall/transforms/FloatFormat_Double_RoundTrip_Test.java
index bcefbdba2a..31b7e8d0bc 100644
---
a/juneau-core/juneau-marshall-rdf/src/test/java/org/apache/juneau/marshall/transforms/FloatFormat_Double_RoundTrip_Test.java
+++
b/juneau-core/juneau-marshall-rdf/src/test/java/org/apache/juneau/marshall/transforms/FloatFormat_Double_RoundTrip_Test.java
@@ -58,11 +58,11 @@ import org.junit.jupiter.params.provider.*;
*
* <p>
* Unlike the {@link Float} sibling, this file has no Prototext-skip helper —
the Prototext text-format tokenizer
- * bugs that forced those skips (Bug #4a — neg-flag discard on the Double
return path of
- * {@code readDecimalOrFloat}; Bug #4b — {@code 0.x} mis-tokenisation in
{@code lexNumber}'s `0`-prefix
- * branch) were both fixed before this file landed (see the work item 57
notes). The {@code a04} non-finite
- * test still skips Prototext in the {@link Float} sibling because Bug #4c
({@code mightStartNumber}
- * {@code nan}/{@code inf} asymmetry) is still open — same predicate carried
into this file for the same
+ * bugs that forced those skips (a neg-flag discard on the Double return path
of
+ * {@code readDecimalOrFloat}, and a {@code 0.x} mis-tokenisation in {@code
lexNumber}'s `0`-prefix
+ * branch) were both fixed before this file landed. The {@code a04} non-finite
+ * test still skips Prototext in the {@link Float} sibling because a {@code
mightStartNumber}
+ * {@code nan}/{@code inf} asymmetry is still open — the same predicate is
carried into this file for the same
* reason.
*/
@SuppressWarnings({
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/bson/BsonParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/bson/BsonParserSession.java
index a758fbbfe7..6c9e6176bb 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/bson/BsonParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/bson/BsonParserSession.java
@@ -158,7 +158,7 @@ public class BsonParserSession extends
InputStreamParserSession implements Recor
if (!eType.isOptional() && sType.isMap()) {
var map = sType.canCreateNewInstance(outer) ?
(Map)sType.newInstance(outer) : newGenericMap(sType);
// Coerce string keys to the declared key type when
non-String (e.g. Map<TestEnum,String>)
- // so map.get(EnumConstant) works (Bug #7b). Matches
the JSON-family readIntoMap2 pattern.
+ // so map.get(EnumConstant) works. Matches the
JSON-family readIntoMap2 pattern.
var keyType = sType.getKeyType();
var coerceKeys = nn(keyType) && !keyType.isObject() &&
!keyType.isString();
while (!is.isDocumentEnd()) {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/hjson/HjsonParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/hjson/HjsonParserSession.java
index dbc7f2f91e..f30a9a9aaa 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/hjson/HjsonParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/hjson/HjsonParserSession.java
@@ -129,7 +129,7 @@ public class HjsonParserSession extends ReaderParserSession
implements RecordRea
private Object readRootBraceless(HjsonTokenizer t, ClassMeta<?> type,
String firstKey) throws IOException, ParseException, ExecutableException {
var result = newGenericMap();
- // Same per-property type threading as readObject so
braceless-root beans get typed-map keys (Bug #7b).
+ // Same per-property type threading as readObject so
braceless-root beans get typed-map keys.
var beanMeta = (type != null && type.isBean()) ?
type.getBeanMeta() : null;
if (t.read().type() != HjsonTokenizer.TokenType.COLON)
throw new ParseException(this, "Expected : after key at
line %s", t.getLine());
@@ -211,7 +211,7 @@ public class HjsonParserSession extends ReaderParserSession
implements RecordRea
/**
* Coerces a parsed scalar value to the expected type, honoring
session-aware default swaps for
- * {@code byte[]} targets at the collection-element / top-level
dispatch sites (Bug #12).
+ * {@code byte[]} targets at the collection-element / top-level
dispatch sites.
*
* <p>For all other targets this is a transparent wrapper over {@link
#convertToMemberType} so the
* existing dispatch behavior is preserved. The narrow {@code byte[]}
hook lets the configured
@@ -233,10 +233,10 @@ public class HjsonParserSession extends
ReaderParserSession implements RecordRea
* Resolves the {@link ClassMeta} to parse a bean-property value
against, falling back to {@code object()}
* when the enclosing type isn't a bean or the key isn't a known
property. Threading the property type
* lets typed-map properties (e.g. {@code Map<TestEnum,String>}) coerce
their keys via the converter's
- * {@code Map → Map} path (Bug #7b).
+ * {@code Map → Map} path.
*
* <p>
- * Extended in Bug #12 to also surface {@link
ClassMeta#isCollectionOrArray()} property types so the
+ * Also surfaces {@link ClassMeta#isCollectionOrArray()} property types
so the
* collection-element dispatch in {@link #readArray} threads the
parent's element type into recursion —
* that's where {@link #coerceMemberValue} reads the {@code byte[]}
target and invokes the configured
* {@link org.apache.juneau.marshall.swaps.BinarySwap}'s unswap on the
wire-form string. Other property shapes
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/hocon/HoconParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/hocon/HoconParserSession.java
index aaa205d795..38bb483e95 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/hocon/HoconParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/hocon/HoconParserSession.java
@@ -412,16 +412,16 @@ public class HoconParserSession extends
ReaderParserSession implements RecordRea
private Object hoconToMap(HoconValue val, ClassMeta<?> type) throws
ParseException {
if (val == null)
return null;
- // Bug #12: STRING values targeting byte[] consult the
configured BinaryFormat's variant
- // BinarySwap before falling back to the default String →
byte[] UTF-8 coercion that the bean
- // binder would otherwise apply at the collection-element /
top-level dispatch site. The
+ // STRING values targeting byte[] consult the configured
BinaryFormat's variant BinarySwap
+ // before falling back to the default String → byte[] UTF-8
coercion that the bean binder
+ // would otherwise apply at the collection-element / top-level
dispatch site. The
// bean-property path is unaffected because the per-property
MPP install hides the type-level
// default swap behind the per-property swap on the
BeanPropertyMeta.
//
- // Bug #11/#12 a04 residual: at BinaryFormat.NOT_SET
BinarySwap.match returns 0 and no swap
- // fires, but HoconSerializerSession emits byte[] at NOT_SET as
a base64 string (to sidestep
- // HOCON's array-concatenation flattening for nested int-array
wire forms). Decode that
- // here as the symmetric fallback so List<byte[]> and top-level
byte[] round-trip at NOT_SET.
+ // At BinaryFormat.NOT_SET BinarySwap.match returns 0 and no
swap fires, but
+ // HoconSerializerSession emits byte[] at NOT_SET as a base64
string (to sidestep HOCON's
+ // array-concatenation flattening for nested int-array wire
forms). Decode that here as the
+ // symmetric fallback so List<byte[]> and top-level byte[]
round-trip at NOT_SET.
if (val.getType() == HoconValue.Type.STRING && type != null &&
type.inner() == byte[].class) {
var s = ((HoconValue.HoconString) val).getValue();
var swap = type.getSwap(this);
@@ -430,11 +430,11 @@ public class HoconParserSession extends
ReaderParserSession implements RecordRea
return Base64.getDecoder().decode(s);
}
// Look up bean property metas so nested typed-map properties
(Map<K,V> with non-String K) can have
- // their keys coerced via the converter's Map→Map path before
the bean binds them (Bug #7b).
- // Extended in Bug #12 to also surface Collection/Array
property types so the ARRAY branch can
- // thread the parent's element type into recursion and the
byte[] swap dispatch above can fire
- // at the right depth. Other property shapes (Optional,
primitive, bean) still pass through as
- // object() so the lazy-typed conversion path stays in place.
+ // their keys coerced via the converter's Map→Map path before
the bean binds them. Collection/Array
+ // property types are also surfaced here so the ARRAY branch
can thread the parent's element type
+ // into recursion and the byte[] swap dispatch above can fire
at the right depth. Other property
+ // shapes (Optional, primitive, bean) still pass through as
object() so the lazy-typed conversion
+ // path stays in place.
var beanMeta = (type != null && type.isBean()) ?
type.getBeanMeta() : null;
var result = switch (val.getType()) {
case STRING -> ((HoconValue.HoconString)
val).getValue();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/ini/IniParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/ini/IniParserSession.java
index d208bd81c7..1920f594d7 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/ini/IniParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/ini/IniParserSession.java
@@ -328,7 +328,7 @@ public class IniParserSession extends ReaderParserSession
implements RecordReada
* than repeated for every {@code […]} / {@code {…}} value.
*
* <p>
- * Bug #8: list-of-{@link Locale} values written under {@link
LocaleFormat#UNDERSCORE}
+ * List-of-{@link Locale} values written under {@link
LocaleFormat#UNDERSCORE}
* (wire form {@code "en_US"}) were being parsed via {@code
Locale.forLanguageTag("en_US")} (BCP_47 default)
* which returns {@link Locale#ROOT}, dropping the locale content.
*/
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetParserSession.java
index eab6cf89f2..651e2bfd10 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetParserSession.java
@@ -182,7 +182,7 @@ public class ParquetParserSession extends
InputStreamParserSession implements Re
@Override /* InputStreamParserSession */
public boolean hasNativeBytes() {
// Parquet's column reader has no native byte-array primitive
type — it surfaces byte[] as a raw
- // BYTE_ARRAY column (at BinaryFormat.NOT_SET; Bug #11
raw-bytes path) or as a UTF-8 string column
+ // BYTE_ARRAY column (at BinaryFormat.NOT_SET) or as a UTF-8
string column
// (at any other BinaryFormat, after the BinarySwap reverses
the configured text wire form).
return false;
}
@@ -433,7 +433,7 @@ public class ParquetParserSession extends
InputStreamParserSession implements Re
* Result of {@link #readSchema(ThriftCompactDecoder)}: the per-leaf
repetition map plus the set of
* leaf paths whose physical type is {@code TYPE_BYTE_ARRAY} with no
{@code convertedType} —
* i.e. raw {@code byte[]} columns emitted by {@code
ParquetSchemaBuilder.addLeafSchema}'s
- * {@code cm.isByteArray()} branch (Bug #11). The Parquet file footer
drops the
+ * {@code cm.isByteArray()} branch. The Parquet file footer drops the
* {@code logicalType} discriminant ({@code
ParquetSchemaElement.writeTo} omits field 7), so the
* parser uses "{@code TYPE_BYTE_ARRAY} with no {@code convertedType}"
as the unique signal that a
* column should be reassembled back into {@code byte[]} instead of
decoded as UTF-8 text.
@@ -539,17 +539,17 @@ public class ParquetParserSession extends
InputStreamParserSession implements Re
// temporal converted types matter to the
decoder; the UUID/string paths are handled separately.
if (convertedType != null)
columnLogical.put(path, new
ColumnLogical(convertedType, scale, precision));
- // Bug #11 fix: a TYPE_BYTE_ARRAY column with
no convertedType uniquely identifies a
+ // A TYPE_BYTE_ARRAY column with no
convertedType uniquely identifies a
// raw byte[] column emitted by
ParquetSchemaBuilder.addLeafSchema's cm.isByteArray()
// branch. Every other writer site that emits
TYPE_BYTE_ARRAY sets a discriminator
// (CONVERTED_UTF8 for
strings/dates/durations/decimals, CONVERTED_ENUM for enums, or
- // CONVERTED_TIMESTAMP_MILLIS). Mirrors the
Bug #7a UUID parse-back assumption
+ // CONVERTED_TIMESTAMP_MILLIS). Mirrors the
UUID parse-back assumption
// (TYPE_FIXED_LEN_BYTE_ARRAY uniquely
identifies UUIDs) at a different physical type.
if (type == TYPE_BYTE_ARRAY && convertedType ==
null)
rawByteArrayPaths.add(path);
// Prefer the explicit LogicalType discriminant
(field 10) when present; otherwise fall back to
// the legacy "FIXED_LEN_BYTE_ARRAY == UUID"
physical-type heuristic for backward compatibility
- // with files written without the opt-in
discriminator (work item 134).
+ // with files written without the opt-in
discriminator.
if (type == TYPE_FIXED_LEN_BYTE_ARRAY)
uuidPaths.add(path);
if (parquetDebug())
@@ -1172,7 +1172,7 @@ public class ParquetParserSession extends
InputStreamParserSession implements Re
case TYPE_FLOAT -> reader.readFloat();
case TYPE_DOUBLE -> reader.readDouble();
case TYPE_BYTE_ARRAY -> {
- // Bug #11 fix: when the schema marks this
column as a raw byte[] column
+ // When the schema marks this column as a raw
byte[] column
// (TYPE_BYTE_ARRAY with no convertedType — see
SchemaReadResult), surface the bytes
// as a byte[] so the framework can hand them
straight to the bean-property setter.
// Otherwise read the bytes as UTF-8 for string
/ enum / date / duration / decimal
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetSerializerSession.java
index d261ce961b..be3e49bf97 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetSerializerSession.java
@@ -130,7 +130,7 @@ public class ParquetSerializerSession extends
OutputStreamSerializerSession impl
@Override /* OutputStreamSerializerSession */
public boolean hasNativeBytes() {
// Parquet's column writer has no native byte-array primitive
type — it stores byte[] as a raw
- // BYTE_ARRAY column (at BinaryFormat.NOT_SET; Bug #11 schema
branch) or as a UTF-8 string column
+ // BYTE_ARRAY column (at BinaryFormat.NOT_SET) or as a UTF-8
string column
// (at any other BinaryFormat, after the BinarySwap fires and
emits the configured text wire form).
return false;
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextParserSession.java
index cd035c48b9..d926c60840 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextParserSession.java
@@ -99,10 +99,10 @@ public class PrototextParserSession extends
ReaderParserSession implements Recor
return type.canCreateNewBean(getOuter()) ?
type.newInstance(getOuter()) : null;
if (root.size() == 1 && root.containsKey("_value")) {
var raw = root.get("_value");
- // Bug #12 (top-level only): when the root
payload is a String-shaped byte[], consult
- // the configured BinaryFormat's variant
BinarySwap before falling through to convertValue's
- // default String → byte[] UTF-8 coercion.
Collection-element route is intentionally not
- // touched here — that surface is Bug #11
(Prototext's repeated bytes field).
+ // Top-level only: when the root payload is a
String-shaped byte[], consult the configured
+ // BinaryFormat's variant BinarySwap before
falling through to convertValue's default
+ // String → byte[] UTF-8 coercion. The
collection-element route (Prototext's repeated
+ // bytes field) is intentionally not touched
here.
if (raw instanceof String s && type != null &&
type.inner() == byte[].class) {
var swap = type.getSwap(this);
if (swap != null)
@@ -190,9 +190,9 @@ public class PrototextParserSession extends
ReaderParserSession implements Recor
return t.read().stringValue();
if (tok.type() == PrototextToken.TokenType.STRING)
return t.read().stringValue();
- // Bare integer / hex / octal field tags (e.g. {@code 0:
"first"}). Required for the
- // Bug #7b residual fix on the serialize side, which emits
numeric Map<K,V> keys as bare
- // integer tags rather than quoted strings. The string-form of
the numeric value is the
+ // Bare integer / hex / octal field tags (e.g. {@code 0:
"first"}). Required to parse back
+ // what the serialize side emits: numeric Map<K,V> keys as bare
integer tags rather than
+ // quoted strings. The string-form of the numeric value is the
// field-name; downstream key-type coercion in convertMapToType
/ convertValue handles the
// conversion back to the bean property's declared key type.
if (tok.type() == PrototextToken.TokenType.DEC_INT
@@ -283,7 +283,7 @@ public class PrototextParserSession extends
ReaderParserSession implements Recor
return (T) jm;
return (T) toJsonMap(map);
}
- // Coerce keys when the declared key type isn't
String/Object (Bug #7b).
+ // Coerce keys when the declared key type isn't
String/Object.
var keyType = type.getKeyType();
if (keyType != null && !keyType.isObject() &&
!keyType.isString())
return convertToMemberType(null, map, type);
@@ -344,7 +344,7 @@ public class PrototextParserSession extends
ReaderParserSession implements Recor
if (targetType.isMap()) {
// When the bean property's declared key type
is non-String (e.g. Map<TestEnum,String>),
// route through the converter's Map→Map path
so keys are coerced to the declared type.
- // toJsonMap unconditionally toString-keys the
entries which loses the enum/typed key (Bug #7b).
+ // toJsonMap unconditionally toString-keys the
entries which loses the enum/typed key.
var keyType = targetType.getKeyType();
if (keyType != null && !keyType.isObject() &&
!keyType.isString())
return convertToMemberType(null, val2,
targetType);
@@ -377,8 +377,8 @@ public class PrototextParserSession extends
ReaderParserSession implements Recor
return readPeriod(val2.toString());
}
// String → byte[] dispatch at the collection-element /
map-value / top-level call site.
- // Mirrors the Bug #12 top-level fix in doRead but for the
collection-element path that
- // was intentionally carved out of that turn. Two routes:
+ // Mirrors the top-level handling in doRead, but covers the
collection-element path that
+ // doRead intentionally leaves untouched. Two routes:
// (1) non-NOT_SET: consult the variant BinarySwap installed
on byte[].class via
// targetType.getSwap(this); the wire is a hex / base64
string emitted by the
// swap's swap() on the serializer side.
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextSerializerSession.java
index a7aaf179f0..2ac4cfd3b9 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextSerializerSession.java
@@ -449,7 +449,7 @@ public class PrototextSerializerSession extends
WriterSerializerSession implemen
// Resolve to the runtime type and apply any registered swap.
Required for collection/array
// elements that arrive here without having gone through
writeAnything's swap step (e.g.
// List<Locale> elements where the bean-property swap is on the
List, not on Locale).
- // Bug #8: without this, Locale list-elements wire as
Locale.toString() ("en_US") regardless
+ // Without this, Locale list-elements wire as Locale.toString()
("en_US") regardless
// of the configured LocaleFormat, breaking BCP_47 round-trips
on the parser side.
var rType = getClassMetaForObject(value, type);
var swap = rType.getSwap(this);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextTokenizer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextTokenizer.java
index 539f5b6ac0..93e0a786d3 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextTokenizer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextTokenizer.java
@@ -163,7 +163,7 @@ class PrototextTokenizer {
unread(c); // restore sign for lexNumber
return Character.isDigit(next) || next == '.' || next
== 'i' || next == 'I' || next == 'n' || next == 'N';
}
- // Bug #4c: 'n'/'i' might start nan / inf / infinity at value
position, but it might also
+ // 'n'/'i' might start nan / inf / infinity at value position,
but it might also
// start a regular identifier-shaped field name (nano_seconds,
inf, index, ...). Multi-char
// lookahead disambiguates: peek past the leading letter to see
if the assembled token is
// nan / inf / infinity (case-insensitive) AND is followed by a
value-terminator (whitespace,
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlParserSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlParserSession.java
index fa66913fa1..6419a387ca 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlParserSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlParserSession.java
@@ -506,10 +506,10 @@ public class TomlParserSession extends
ReaderParserSession implements RecordRead
// Temporal → T coercion below applies the local zone and we
lose the wire's UTC anchor.
if (val instanceof TemporalAccessor ta &&
targetType.isTemporal())
return readTemporal(ta.toString(), targetType);
- // Bug #12: route String-shaped byte[] values
(collection-element + top-level dispatch sites)
- // through the configured BinaryFormat's variant binarySwap
before falling through to the
- // default String → byte[] coercion. The bean-property path is
unaffected because the
- // per-property MPP install hides the type-level default swap
behind the per-property swap.
+ // Route String-shaped byte[] values (collection-element +
top-level dispatch sites) through
+ // the configured BinaryFormat's variant binarySwap before
falling through to the default
+ // String → byte[] coercion. The bean-property path is
unaffected because the per-property
+ // MPP install hides the type-level default swap behind the
per-property swap.
var binBytes = tryUnswapByteArray(val, targetType);
if (binBytes != null)
return binBytes;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlSerializerSession.java
index 4f853b6667..dd2e7468a4 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlSerializerSession.java
@@ -281,7 +281,7 @@ public class TomlSerializerSession extends
WriterSerializerSession implements Re
// Resolve to the runtime type and apply any registered swap.
Required for collection/array
// elements that arrive here without having gone through
writeKeyValue's swap step (e.g.
// List<Locale> elements where the bean-property swap is on the
List, not on Locale).
- // Bug #8: without this, Locale list-elements wire as
Locale.toString() ("en_US") regardless of
+ // Without this, Locale list-elements wire as Locale.toString()
("en_US") regardless of
// the configured LocaleFormat, breaking BCP_47 round-trips on
the parser side.
var rType = getClassMetaForObject(value, aType);
var swap = rType.getSwap(this);
@@ -337,7 +337,7 @@ public class TomlSerializerSession extends
WriterSerializerSession implements Re
} else if (aType.isPeriod()) {
w.stringValue(writePeriod((Period)value));
} else if (value.getClass().isArray()) {
- // Bug #11/#12 a04 residual (generalized): when aType
arrives erased — most commonly
+ // Generalized fallback: when aType arrives erased —
most commonly
// because the value is a typed List<T[]> bean-property
element and the parent List's
// elementType resolved to Object
(getClassMetaForObject(value, cMeta) ignores the
// cMeta hint when value != null and returns the raw
runtime ArrayList ClassMeta) —
diff --git
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/MarshalledPropertyPostProcessor_Test.java
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/MarshalledPropertyPostProcessor_Test.java
index 789a4f2b5d..bc6848bf64 100644
---
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/MarshalledPropertyPostProcessor_Test.java
+++
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/MarshalledPropertyPostProcessor_Test.java
@@ -36,7 +36,7 @@ import org.junit.jupiter.api.*;
* <p>
* Targets short-circuit arms in {@code applyPropertyFormats} / {@code
applyClassFormats} (a typed
* field with {@code @MarshalledProp} / {@code @Marshalled} default =
NOT_SET), edge cases in the
- * XMLGregorianCalendar swap, the Bug #18 {@code temporalAccessorSwap} MILLIS
branch, and other
+ * XMLGregorianCalendar swap, the {@code temporalAccessorSwap} MILLIS branch,
and other
* swap-internal arms the cross-serializer/parser matrix doesn't reach because
it always supplies a
* non-NOT_SET context format and never feeds null / blank values through
swap.unswap.
*
@@ -193,7 +193,7 @@ class MarshalledPropertyPostProcessor_Test {
}
//------------------------------------------------------------------------------------------------------------------
- // Group D — Bug #18 carryover: TemporalFormat.MILLIS on the
temporalAccessorSwap path.
+ // Group D — TemporalFormat.MILLIS on the temporalAccessorSwap path.
// The MILLIS-numeric arm in temporalAccessorSwap.swap is structurally
identical to temporalSwap's
// (line 727 in MPP) but is only exercised when propertyClass is a
TemporalAccessor (MonthDay) and
// the format is MILLIS. MonthDay falls back to ISO_OFFSET_TIME-like
text via the carve-out, so
diff --git
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/hocon/HoconParserSession_Test.java
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/hocon/HoconParserSession_Test.java
index 159f2c8198..4262af2c8c 100644
---
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/hocon/HoconParserSession_Test.java
+++
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/hocon/HoconParserSession_Test.java
@@ -28,7 +28,7 @@ import org.junit.jupiter.api.*;
/**
* Targeted coverage tests for {@link HoconParserSession} focusing on uncovered
- * gaps reported by JaCoCo (see coverage analysis issue 155, Tier E14).
+ * gaps reported by JaCoCo.
*
* <p>Each test exercises a specific branch in HoconParserSession not already
* covered by the existing {@code Hocon*_Test} suite.
@@ -446,7 +446,7 @@ class HoconParserSession_Test extends TestBase {
@Test
void j03_beanWithTypedMap() throws Exception {
// Bean property is Map<Integer,String> — covers the cm.isMap()
child-type lookup
- // in hoconToMap (Bug #7b path) plus the convertToMemberType
key-coercion branch.
+ // in hoconToMap plus the convertToMemberType key-coercion
branch.
var bean = HoconParser.DEFAULT.read("counts { 1 = a, 2 = b }",
BeanWithIntMap.class);
assertNotNull(bean);
assertEquals("a", bean.counts.get(1));
diff --git
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/hocon/HoconParser_Test.java
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/hocon/HoconParser_Test.java
index fad61e7e24..c982b23c1f 100644
---
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/hocon/HoconParser_Test.java
+++
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/hocon/HoconParser_Test.java
@@ -260,7 +260,7 @@ class HoconParser_Test {
assertEquals(2, ((Number) obj.get("b")).intValue());
}
- // Regression for the tokenizer peek/skip invariant (work item 135 /
FINISHED-57 OQ #13).
+ // Regression for the tokenizer peek/skip invariant.
// Newline-separated inner arrays inside an outer array must stay
NESTED — the newline is an
// element separator, NOT a value-concatenation join. If
skipWhitespaceAndComments wrongly read
// past the closing ']' cached by readValueOrConcat's peekNoSkip and
ate the following newline,
diff --git
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/json/JsonParser_Test.java
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/json/JsonParser_Test.java
index 4dd7701445..7811c941b2 100755
---
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/json/JsonParser_Test.java
+++
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/json/JsonParser_Test.java
@@ -183,7 +183,7 @@ class JsonParser_Test extends TestBase {
public B01_Bean setV(Set<B_Enum> x) { v = x; return this; }
}
- // Headline case, mirroring the exact repro from FINISHED-147 (abstract
Set<Enum>, empty array, null field).
+ // Headline case: abstract Set<Enum>, empty array, null field.
@Test void b01_emptyArrayIntoAbstractSetOfEnum() throws Exception {
var p2 =
JsonParser.create().ignoreUnknownBeanProperties().build();
var x = p2.read("{\"v\":[]}", B01_Bean.class);
diff --git
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/markdown/MarkdownParserSession_Test.java
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/markdown/MarkdownParserSession_Test.java
index b598e1e2f9..f8e84effc9 100644
---
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/markdown/MarkdownParserSession_Test.java
+++
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/markdown/MarkdownParserSession_Test.java
@@ -31,7 +31,7 @@ import org.junit.jupiter.params.provider.*;
/**
* Coverage tests for {@link MarkdownParserSession} branches not exercised by
the higher-level
- * {@link MarkdownParser_Test} suite (see coverage analysis issue 155, Tier
E3).
+ * {@link MarkdownParser_Test} suite.
*/
class MarkdownParserSession_Test extends TestBase {
diff --git
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/parquet/ParquetLogicalType_Test.java
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/parquet/ParquetLogicalType_Test.java
index a283ad0cf6..7b30a2d2cb 100644
---
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/parquet/ParquetLogicalType_Test.java
+++
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/parquet/ParquetLogicalType_Test.java
@@ -26,7 +26,7 @@ import org.apache.juneau.*;
import org.junit.jupiter.api.*;
/**
- * Tests for the opt-in, default-OFF Parquet footer logical-type discriminator
(work item 134).
+ * Tests for the opt-in, default-OFF Parquet footer logical-type discriminator.
*
* <p>
* The discriminator is modeled on JSON's optional {@code _type} behavior: by
default the writer emits
diff --git
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/parser/ParserSession_Test.java
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/parser/ParserSession_Test.java
index ddf3b108bc..9f838eb3c1 100644
---
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/parser/ParserSession_Test.java
+++
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/parser/ParserSession_Test.java
@@ -50,7 +50,7 @@ import org.junit.jupiter.api.*;
* {@link JsonParserSession} overrides both, but the public
* {@link ParserSession#readIntoMap}/{@link
ParserSession#readIntoCollection} wrappers
* re-wrap the {@code UnsupportedOperationException} as a {@link
ParseException}.
- * - The XML follow-up bug (issue 155 #12) was a {@code doReadIntoMap}/{@code
doReadIntoCollection}
+ * - The XML follow-up bug was a {@code doReadIntoMap}/{@code
doReadIntoCollection}
* self-recursion where the override called {@code super.doRead(...)}
instead of the
* format-specific parse-anything routine. No similar dispatch issues were
observed in JSON,
* UON, or CSV parser sessions; all override and call their internal {@code
readAnything}.
diff --git
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/prototext/PrototextSerializerSession_Test.java
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/prototext/PrototextSerializerSession_Test.java
index afbb8592b0..a93d0b5c4e 100644
---
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/prototext/PrototextSerializerSession_Test.java
+++
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/prototext/PrototextSerializerSession_Test.java
@@ -452,7 +452,7 @@ class PrototextSerializerSession_Test extends TestBase {
}
@Test void h04_beanWithMapArray() throws Exception {
- // Bean with Map[] property — regression for bug #8:
writeBeanMap was calling
+ // Bean with Map[] property — regression coverage: writeBeanMap
was calling
// toBeanMap() unconditionally on the map elements, which threw
BeanRuntimeException.
// The array path now dispatches Map vs Bean correctly.
var bean = new BeanWithMapArray();
diff --git
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/CalendarFormat_RoundTrip_Test.java
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/CalendarFormat_RoundTrip_Test.java
index f99a2cf144..2c451c1522 100644
---
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/CalendarFormat_RoundTrip_Test.java
+++
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/CalendarFormat_RoundTrip_Test.java
@@ -335,7 +335,7 @@ class CalendarFormat_RoundTrip_Test extends TestBase {
// a HOCON-specific parsing issue when used with {@link
CalendarFormat#BASIC_ISO_DATE} (the colon-less
// offset "+0900" was emitted unquoted by the HOCON serializer and
tripped a parser-side recursion
// bug); both the HOCON serializer's QUOTE_VALUE_CHARS set and the
parser-side recursion guard have
- // been fixed (Bug #15) so positive offsets now round-trip correctly.
+ // been fixed so positive offsets now round-trip correctly.
//
public static class A03Bean {
public Calendar ny;
diff --git
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/ClassFormatSwap_SessionClassLoader_Test.java
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/ClassFormatSwap_SessionClassLoader_Test.java
index d23bf600b6..05d7300447 100644
---
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/ClassFormatSwap_SessionClassLoader_Test.java
+++
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/ClassFormatSwap_SessionClassLoader_Test.java
@@ -30,7 +30,7 @@ import org.junit.jupiter.api.*;
/**
* Verifies that {@link
org.apache.juneau.marshall.swaps.ClassFormatSwap#unswap} consults the
session-installed
- * classloader before falling back to the thread-context classloader
(FINISHED-138).
+ * classloader before falling back to the thread-context classloader.
*
* <p>
* Three scenarios are exercised:
diff --git
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/DurationFormat_RoundTrip_Test.java
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/DurationFormat_RoundTrip_Test.java
index 38a7ee9bb3..ac2ae3b0dc 100644
---
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/DurationFormat_RoundTrip_Test.java
+++
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/DurationFormat_RoundTrip_Test.java
@@ -52,7 +52,7 @@ import org.junit.jupiter.params.provider.*;
* Cross-pair round-trip coverage for {@link DurationFormat} across every
supported serializer/parser pair.
*
* <p>
- * This is the pilot test for the work item 50/work item 54 format-control
round-trip pattern. It varies the
+ * This is the pilot test for the format-control round-trip pattern. It
varies the
* {@link DurationFormat} setting on both the serializer and parser builders
for each tester template, then
* round-trips representative {@link Duration} values:
* <ul>
diff --git
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/FloatFormat_Double_RoundTrip_Test.java
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/FloatFormat_Double_RoundTrip_Test.java
index 54b657771e..1da5f63247 100644
---
a/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/FloatFormat_Double_RoundTrip_Test.java
+++
b/juneau-core/juneau-marshall/src/test/java/org/apache/juneau/marshall/transforms/FloatFormat_Double_RoundTrip_Test.java
@@ -77,11 +77,11 @@ import org.junit.jupiter.params.provider.*;
*
* <p>
* Unlike the {@link Float} sibling, this file has no Prototext-skip helper —
the Prototext text-format tokenizer
- * bugs that forced those skips (Bug #4a — neg-flag discard on the Double
return path of
- * {@code readDecimalOrFloat}; Bug #4b — {@code 0.x} mis-tokenisation in
{@code lexNumber}'s `0`-prefix
- * branch) were both fixed before this file landed (see the work item 57
notes). The {@code a04} non-finite
- * test still skips Prototext in the {@link Float} sibling because Bug #4c
({@code mightStartNumber}
- * {@code nan}/{@code inf} asymmetry) is still open — same predicate carried
into this file for the same
+ * bugs that forced those skips (a neg-flag discard on the Double return path
of
+ * {@code readDecimalOrFloat}, and a {@code 0.x} mis-tokenisation in {@code
lexNumber}'s `0`-prefix
+ * branch) were both fixed before this file landed. The {@code a04} non-finite
+ * test still skips Prototext in the {@link Float} sibling because a {@code
mightStartNumber}
+ * {@code nan}/{@code inf} asymmetry is still open — the same predicate is
carried into this file for the same
* reason.
*/
@SuppressWarnings({
diff --git
a/juneau-core/juneau-test/src/test/java/org/apache/juneau/test/bct/BctConfiguration_ValueAdoption_Test.java
b/juneau-core/juneau-test/src/test/java/org/apache/juneau/test/bct/BctConfiguration_ValueAdoption_Test.java
index d8a7b35578..f6eb50d65d 100644
---
a/juneau-core/juneau-test/src/test/java/org/apache/juneau/test/bct/BctConfiguration_ValueAdoption_Test.java
+++
b/juneau-core/juneau-test/src/test/java/org/apache/juneau/test/bct/BctConfiguration_ValueAdoption_Test.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.parallel.*;
* Acceptance tests for {@code @Value}-driven defaults on {@link
BctConfiguration.Defaults}.
*
* <p>
- * 3-test triad per migrated field per OQA #4 — system property set, unset
(default), and {@code Settings.setGlobal}.
+ * 3-test triad per migrated field — system property set, unset (default), and
{@code Settings.setGlobal}.
*/
@ResourceLock(Resources.SYSTEM_PROPERTIES)
class BctConfiguration_ValueAdoption_Test {
diff --git
a/juneau-core/juneau-test/src/test/java/org/apache/juneau/test/junit/JuneauBeanStoreExtension_ClassScope_Test.java
b/juneau-core/juneau-test/src/test/java/org/apache/juneau/test/junit/JuneauBeanStoreExtension_ClassScope_Test.java
index 36bb834043..2c35f259e0 100644
---
a/juneau-core/juneau-test/src/test/java/org/apache/juneau/test/junit/JuneauBeanStoreExtension_ClassScope_Test.java
+++
b/juneau-core/juneau-test/src/test/java/org/apache/juneau/test/junit/JuneauBeanStoreExtension_ClassScope_Test.java
@@ -25,7 +25,7 @@ import org.junit.jupiter.api.*;
import org.junit.jupiter.api.extension.*;
/**
- * Tests for class-scope overlays produced by {@link JuneauBeanStoreExtension}
(Phase 3 of work item 35).
+ * Tests for class-scope overlays produced by {@link JuneauBeanStoreExtension}.
*
* <p>
* Phase 3 covers {@code @TestBean(scope = CLASS)} discovery, shared lifetime
across test methods,
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/a/rttests/ParentProperty_RoundTripTest.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/a/rttests/ParentProperty_RoundTripTest.java
index d18b166789..6ffde4974f 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/a/rttests/ParentProperty_RoundTripTest.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/a/rttests/ParentProperty_RoundTripTest.java
@@ -77,7 +77,7 @@ class ParentProperty_RoundTripTest extends RoundTripTest_Base
{
@ParameterizedTest
@MethodSource("testers")
void a02_parentPropertyField(RoundTrip_Tester t) throws Exception {
- // @ParentProperty not supported for inline JSON5 beans in
Markdown (see work-item-9 markdown remaining issues, item 9)
+ // @ParentProperty not supported for inline JSON5 beans in
Markdown
if (t.label.contains("Markdown"))
return;
var x = new ParentPropertyFieldContainer().init();
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/observability/TraceContextResponseProcessor_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/observability/TraceContextResponseProcessor_Test.java
index 99f048960f..7f0af0795b 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/observability/TraceContextResponseProcessor_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/observability/TraceContextResponseProcessor_Test.java
@@ -48,7 +48,7 @@ import io.opentelemetry.sdk.trace.export.*;
* header injection.
*
* <p>
- * Reuses FINISHED-67's OpenTelemetry SDK + {@link InMemorySpanExporter}
test-fixture pattern: a
+ * Reuses the OpenTelemetry SDK + {@link InMemorySpanExporter} test-fixture
pattern: a
* statically-wired SDK is installed before the {@code @Rest} resources build
their
* {@link MockRestClient}s so the {@link OtelTracerHook} bridge captures the
server-started span's
* context and stashes the rendered headers for the response processor to
write.
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/reactive/ReactiveResponseProcessor_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/reactive/ReactiveResponseProcessor_Test.java
index f4a30dcfe2..b6e0f3dde1 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/reactive/ReactiveResponseProcessor_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/reactive/ReactiveResponseProcessor_Test.java
@@ -33,7 +33,7 @@ import org.junit.jupiter.api.*;
/**
* Tests {@link ReactiveResponseProcessor} using only the JDK-native
* {@link Flow.Publisher Flow.Publisher} return type (no external reactive
- * library). This is the MAYBE-120 spine: {@code Flow.Publisher<SseEvent>} SSE
streaming plus the
+ * library). This is the spine: {@code Flow.Publisher<SseEvent>} SSE streaming
plus the
* shared buffer / NDJSON shapes that all reactive types funnel through.
*
* <p>
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/LazyChildren_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/LazyChildren_Test.java
index 4f7646e0ac..49e338d9fe 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/LazyChildren_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/LazyChildren_Test.java
@@ -27,7 +27,7 @@ import org.apache.juneau.rest.server.servlet.*;
import org.junit.jupiter.api.*;
/**
- * Tests for opt-in lazy {@code @Rest(children=...)} materialization
(FINISHED-121).
+ * Tests for opt-in lazy {@code @Rest(children=...)} materialization.
*
* <p>
* Each scenario uses a distinct parent class so the {@link MockRestClient}'s
per-class
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/RestContext_ValueAdoption_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/RestContext_ValueAdoption_Test.java
index 3839baabd6..948eb1a481 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/RestContext_ValueAdoption_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/RestContext_ValueAdoption_Test.java
@@ -31,7 +31,7 @@ import org.junit.jupiter.api.parallel.*;
* Acceptance tests for the {@code @Value}-driven env-default fields on {@link
RestContext}.
*
* <p>
- * 3-test triad per migrated field per OQA #4 — system property set, unset
(default), and
+ * 3-test triad per migrated field — system property set, unset (default), and
* {@code Settings.setGlobal} override. Validates the {@code @Value} field
receives the resolved
* value at injection time. The downstream {@code
mergeReplacedStringAttribute} pipeline applies
* its own DefaultConfig-driven precedence on top of these fields and is
exercised by the existing
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/RestContext_ValueAgainstConfig_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/RestContext_ValueAgainstConfig_Test.java
index daee08de01..7982f5108a 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/RestContext_ValueAgainstConfig_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/RestContext_ValueAgainstConfig_Test.java
@@ -259,7 +259,7 @@ class RestContext_ValueAgainstConfig_Test extends TestBase {
Settings.get().setGlobal("override.key",
"from-settings-global");
try {
- // Override active → setGlobal must beat resource
Config (per OQA #3).
+ // Override active → setGlobal must beat resource
Config.
assertEquals("from-settings-global", bean.value.get(),
"Settings.setGlobal must win over resource
@Rest(config) values.");
} finally {
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/RestInheritedProps_NonMixin_Regression_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/RestInheritedProps_NonMixin_Regression_Test.java
index fd16a9428b..4e2d68ddea 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/RestInheritedProps_NonMixin_Regression_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/RestInheritedProps_NonMixin_Regression_Test.java
@@ -26,7 +26,7 @@ import org.apache.juneau.rest.server.servlet.*;
import org.junit.jupiter.api.*;
/**
- * Blast-radius regression guard for the mixin-override property-resolution
migration ("cleanup #3").
+ * Blast-radius regression guard for the mixin-override property-resolution
migration.
*
* <p>
* That migration moves several {@code @Rest} properties — {@code
defaultRequestHeaders},
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/auth/AuthFilterChain_GuardIntegration_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/auth/AuthFilterChain_GuardIntegration_Test.java
index 6cd85ba35d..aee281ffcd 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/auth/AuthFilterChain_GuardIntegration_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/auth/AuthFilterChain_GuardIntegration_Test.java
@@ -56,7 +56,7 @@ import jakarta.servlet.http.*;
* <li><b>Juneau-layer assertions</b>: uses {@code MockRestClient} to
verify that the Juneau stack
* ({@code RoleBasedRestGuard}, {@code @Auth Principal}) responds
correctly when a request arrives with
* credentials already stashed by an upstream filter — simulated
here via {@link BearerTokenGuard} (the
- * FINISHED-69 op-level guard), which uses the same {@link
RestServerConstants#PRINCIPAL_ATTR} stash key.
+ * op-level guard), which uses the same {@link
RestServerConstants#PRINCIPAL_ATTR} stash key.
* </ol>
*
* @since 10.0.0
@@ -198,7 +198,7 @@ class AuthFilterChain_GuardIntegration_Test extends
TestBase {
// Juneau-layer tests (MockRest): verify @Auth Principal injection
reads PRINCIPAL_ATTR.
//
// Note: MockRest does not run servlet filters, so
AuthenticatedRequestWrapper is not in the
- // request chain here. These tests use BearerTokenGuard (FINISHED-69)
as a stand-in to
+ // request chain here. These tests use BearerTokenGuard as a stand-in
to
// pre-populate RestServerConstants.PRINCIPAL_ATTR, verifying that the
Juneau stack reads
// the same attribute key that AuthenticatedRequestWrapper writes. Full
// RoleBasedRestGuard + filter-produced isUserInRole() integration
requires a live Jetty
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/auth/jwt/JwtTokenValidator_ValueAdoption_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/auth/jwt/JwtTokenValidator_ValueAdoption_Test.java
index 6dc5108ca6..7cdcc4f2ce 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/auth/jwt/JwtTokenValidator_ValueAdoption_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/auth/jwt/JwtTokenValidator_ValueAdoption_Test.java
@@ -28,7 +28,7 @@ import org.junit.jupiter.api.parallel.*;
* Acceptance tests for {@code @Value}-driven defaults on {@link
JwtTokenValidator.Builder}.
*
* <p>
- * 3-test triad per migrated field per OQA #4 — system property set, unset
(default), and {@code Settings.setGlobal}.
+ * 3-test triad per migrated field — system property set, unset (default), and
{@code Settings.setGlobal}.
*/
@ResourceLock(Resources.SYSTEM_PROPERTIES)
class JwtTokenValidator_ValueAdoption_Test {
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/BasicConvention_ParentChain_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/BasicConvention_ParentChain_Test.java
index 7bea8fc497..b732abdf4e 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/BasicConvention_ParentChain_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/BasicConvention_ParentChain_Test.java
@@ -116,13 +116,13 @@ class BasicConvention_ParentChain_Test extends TestBase {
}
@Test void a06_infoLegacyAliasNotMountedByDefault() throws Exception {
- // FINISHED-101: /info is no longer a multi-path default.
Migration to that secondary
+ // /info is no longer a multi-path default. Migration to that
secondary
// alias is covered by VersionMixin_SvlPathOverride_Test#a02.
c.get("/info").run().assertStatus(404);
}
@Test void a07_aboutLegacyAliasNotMountedByDefault() throws Exception {
- // FINISHED-101: /about is no longer a multi-path default.
+ // /about is no longer a multi-path default.
c.get("/about").run().assertStatus(404);
}
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_AsMixin_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_AsMixin_Test.java
index 22bf46f332..eb3633a967 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_AsMixin_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_AsMixin_Test.java
@@ -42,7 +42,7 @@ import org.junit.jupiter.api.*;
* </ul>
*
* <p>
- * Per the FINISHED-101 multi-path collapse, the historical {@code /info} and
{@code /about}
+ * Per the multi-path collapse, the historical {@code /info} and {@code /about}
* mount aliases (formerly a triple default on a single op) are now reached via
* {@code -Djuneau.version.path=info} (or {@code about}); that behavior is
covered by
* {@code VersionMixin_SvlPathOverride_Test}.
@@ -67,7 +67,7 @@ class VersionMixin_AsMixin_Test extends TestBase {
}
@Test void a02_legacyAliasesNotMountedByDefault() throws Exception {
- // FINISHED-101: /info and /about are no longer multi-path
defaults. They only mount when
+ // /info and /about are no longer multi-path defaults. They
only mount when
// the deployer overrides juneau.version.path. Default-build
hosts get 404 here.
ca.get("/info").run().assertStatus(404);
ca.get("/about").run().assertStatus(404);
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_JettyMicroservice_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_JettyMicroservice_Test.java
index 6eb104b252..6cd8beb276 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_JettyMicroservice_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_JettyMicroservice_Test.java
@@ -111,7 +111,7 @@ class VersionMixin_JettyMicroservice_Test extends TestBase {
}
@Test void a02_infoLegacyAliasNotMountedByDefault() throws Exception {
- // FINISHED-101: /info is no longer a multi-path default.
Migration covered by
+ // /info is no longer a multi-path default. Migration covered by
// VersionMixin_SvlPathOverride_Test#a02.
var resp = get("/info");
assertTrue(resp.statusCode() == 404 || resp.statusCode() == 500,
@@ -119,7 +119,7 @@ class VersionMixin_JettyMicroservice_Test extends TestBase {
}
@Test void a03_aboutLegacyAliasNotMountedByDefault() throws Exception {
- // FINISHED-101: /about is no longer a multi-path default.
+ // /about is no longer a multi-path default.
var resp = get("/about");
assertTrue(resp.statusCode() == 404 || resp.statusCode() == 500,
"expected 404 or 500 (not mounted); got " +
resp.statusCode() + ": " + resp.body());
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_Springboot_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_Springboot_Test.java
index 5e37034c09..267908dca4 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_Springboot_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_Springboot_Test.java
@@ -49,7 +49,7 @@ import org.springframework.test.annotation.*;
* {@link VersionMixin_JettyMicroservice_Test Jetty parity test} cannot:
* <ul>
* <li>Spring's bean store adapter ({@code SpringBeanStore}) resolving the
host's
- * {@code @Bean VersionMixin} during the FINISHED-72 mixin walk
through
+ * {@code @Bean VersionMixin} during the mixin walk through
* {@link
org.springframework.context.ApplicationContext#getBean(Class)
* ApplicationContext.getBean(...)}.
* <li>End-to-end format-pinned JSON ({@link
org.apache.juneau.rest.server.server.RestResponse#getDirectWriter
@@ -122,7 +122,7 @@ class VersionMixin_Springboot_Test {
}
@Test void a02_infoLegacyAliasNotMountedByDefault() throws Exception {
- // FINISHED-101: /info is no longer a multi-path default.
Default-build hosts route
+ // /info is no longer a multi-path default. Default-build hosts
route
// the request through the host's normal routing (404 or 500
from Spring Boot's
// error-page mapping); both indicate "not handled by the
version mixin".
var resp = get("/info");
@@ -131,7 +131,7 @@ class VersionMixin_Springboot_Test {
}
@Test void a03_aboutLegacyAliasNotMountedByDefault() throws Exception {
- // FINISHED-101: /about is no longer a multi-path default.
Migration covered by
+ // /about is no longer a multi-path default. Migration covered
by
// VersionMixin_SvlPathOverride_Test#a02.
var resp = get("/about");
assertTrue(resp.statusCode() == 404 || resp.statusCode() == 500,
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_SvlPathOverride_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_SvlPathOverride_Test.java
index 403ec954ac..e65c3b5f45 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_SvlPathOverride_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_SvlPathOverride_Test.java
@@ -28,7 +28,7 @@ import org.junit.jupiter.api.parallel.*;
* {@link VersionMixin}.
*
* <p>
- * Per the FINISHED-101 multi-path collapse, the historical {@code /info} and
{@code /about}
+ * Per the multi-path collapse, the historical {@code /info} and {@code /about}
* aliases (formerly a triple-path default on a single op) are now reached by
overriding the SVL
* variable to {@code info} or {@code about}. The {@code a02} test exercises
the {@code /info}
* alias migration scenario.
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_ValueAdoption_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_ValueAdoption_Test.java
index 49361815e6..1120483959 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_ValueAdoption_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_ValueAdoption_Test.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.parallel.*;
* {@link VersionMixin.Builder}.
*
* <p>
- * 3-test triad per migrated field per OQA #4 — system property set, unset
(default = JVM-resolved),
+ * 3-test triad per migrated field — system property set, unset (default =
JVM-resolved),
* and {@code Settings.setGlobal} override.
*
* <p>
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/docs/SwaggerMixin_Standalone_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/docs/SwaggerMixin_Standalone_Test.java
index e7ad715d23..e9b490a996 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/docs/SwaggerMixin_Standalone_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/docs/SwaggerMixin_Standalone_Test.java
@@ -29,7 +29,7 @@ import org.junit.jupiter.api.*;
*
* <p>
* The mixin's {@code @RestOp} methods are pure POJOs that inherit
serializers/parsers from the
- * host's {@code RestContext} via the FINISHED-81 sub-context model. This test
demonstrates that a
+ * host's {@code RestContext} via the sub-context model. This test
demonstrates that a
* minimal host (vanilla {@link RestResource} + {@link BasicUniversalConfig})
is sufficient to mount
* the {@code /api} endpoint without dragging in the rest of the {@code
BasicRestOperations}
* surface.
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/docs/SwaggerUiMixin_AsMixin_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/docs/SwaggerUiMixin_AsMixin_Test.java
index 4ee48252b9..5add9417e5 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/docs/SwaggerUiMixin_AsMixin_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/docs/SwaggerUiMixin_AsMixin_Test.java
@@ -37,7 +37,7 @@ import org.junit.jupiter.api.*;
* <li>{@code GET /swagger} with {@code Accept: application/json} returns
JSON (defaultAccept doesn't
* override an explicit header).
* <li>The {@code /api} mount uses Juneau's standard content negotiation
(no defaultAccept).
- * <li>Both endpoints are backed by separate sub-{@code RestContext}s per
FINISHED-81.
+ * <li>Both endpoints are backed by separate sub-{@code RestContext}s.
* </ul>
*/
class SwaggerUiMixin_AsMixin_Test extends TestBase {
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/logger/CallLogger_ValueAdoption_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/logger/CallLogger_ValueAdoption_Test.java
index 2e2d3a3eb8..1a70d07676 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/logger/CallLogger_ValueAdoption_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/logger/CallLogger_ValueAdoption_Test.java
@@ -32,7 +32,7 @@ import org.junit.jupiter.api.parallel.*;
* Acceptance tests for {@code @Value}-driven defaults on {@link
CallLogger.Builder}.
*
* <p>
- * 3-test triad per migrated field per OQA #4 — system property set, unset
(default), and {@code Settings.setGlobal}.
+ * 3-test triad per migrated field — system property set, unset (default), and
{@code Settings.setGlobal}.
*/
@ResourceLock(Resources.SYSTEM_PROPERTIES)
class CallLogger_ValueAdoption_Test extends TestBase {
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/AdminMixin_AuthIntegration_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/AdminMixin_AuthIntegration_Test.java
index ce48840ddd..8a69c4eea4 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/AdminMixin_AuthIntegration_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/AdminMixin_AuthIntegration_Test.java
@@ -28,9 +28,9 @@ import org.apache.juneau.rest.server.servlet.*;
import org.junit.jupiter.api.*;
/**
- * End-to-end integration smoke test for FINISHED-77's
+ * End-to-end integration smoke test for the
* {@link AdminMixin}-with-DenyAllGuard-default ↔ {@link BearerTokenGuard}
- * cross-cut. Confirms the migration claim from FINISHED-77's Related-work
cross-link: swapping
+ * cross-cut. Confirms that swapping
* {@link org.apache.juneau.rest.server.server.guard.DenyAllGuard
DenyAllGuard} for an AuthN guard is a
* zero-mixin-source-change drop-in.
*
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/AdminMixin_RateLimitSnapshot_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/AdminMixin_RateLimitSnapshot_Test.java
index 1f204adf35..3b80ffeafd 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/AdminMixin_RateLimitSnapshot_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/AdminMixin_RateLimitSnapshot_Test.java
@@ -36,7 +36,7 @@ import org.junit.jupiter.api.*;
* <p>
* Builds on {@code AdminMixin_AsMixin_Test}'s {@code
c01_rateLimitListsRegisteredGuard}
* pattern; the snapshot coverage is the v1 follow-up that closes the {@code
"buckets": []}
- * placeholder noted in the FINISHED-77 archive.
+ * placeholder.
*
* @since 10.0.0
*/
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/BasicOps_OpenApiHidden_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/BasicOps_OpenApiHidden_Test.java
index b65051e942..55ab568346 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/BasicOps_OpenApiHidden_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/BasicOps_OpenApiHidden_Test.java
@@ -84,7 +84,7 @@ class BasicOps_OpenApiHidden_Test extends TestBase {
c.get("/echo/x").run().assertStatus(200);
c.get("/options").run().assertStatus(200);
c.get("/admin/threads").run().assertStatus(200);
- // FINISHED-101: /routes is no longer a multi-path default;
migration covered by the
+ // /routes is no longer a multi-path default; migration covered
by the
// per-mixin *_SvlPathOverride_Test classes.
c.get("/routes").run().assertStatus(404);
}
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/BasicOps_ParentChain_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/BasicOps_ParentChain_Test.java
index d164266f1a..fa693f4f90 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/BasicOps_ParentChain_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/BasicOps_ParentChain_Test.java
@@ -79,7 +79,7 @@ class BasicOps_ParentChain_Test extends TestBase {
}
@Test void a02_echoServesAtPrimaryMount() throws Exception {
- // FINISHED-101: /debug/echo/* is no longer a multi-path
default. Migration to that
+ // /debug/echo/* is no longer a multi-path default. Migration
to that
// secondary alias is covered by
EchoMixin_SvlPathOverride_Test#a02.
c.get("/echo/x").run().assertStatus(200);
c.get("/debug/echo/x").run().assertStatus(404);
@@ -113,7 +113,7 @@ class BasicOps_ParentChain_Test extends TestBase {
}
@Test void a06_legacyRoutesAliasNotMountedByDefault() throws Exception {
- // FINISHED-101: /routes is no longer a multi-path default.
Migration covered by
+ // /routes is no longer a multi-path default. Migration covered
by
// RouteIndexMixin_SvlPathOverride_Test#a02.
c.get("/routes").run().assertStatus(404);
}
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_AsMixin_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_AsMixin_Test.java
index 905d4992bb..7cc939d9c7 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_AsMixin_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_AsMixin_Test.java
@@ -66,7 +66,7 @@ class EchoMixin_AsMixin_Test extends TestBase {
}
@Test void a02_legacyDebugEchoAliasNotMountedByDefault() throws
Exception {
- // FINISHED-101: /debug/echo/* is no longer a multi-path
default. It only mounts when
+ // /debug/echo/* is no longer a multi-path default. It only
mounts when
// the deployer overrides juneau.echo.path=debug/echo.
Default-build hosts get 404 here.
ca.get("/debug/echo/something").run().assertStatus(404);
}
@@ -103,7 +103,7 @@ class EchoMixin_AsMixin_Test extends TestBase {
}
@Test void b02_legacyDebugEchoAliasReturns404WhenNotOverridden() throws
Exception {
- // FINISHED-101: secondary alias only mounts when sysprop
override is set.
+ // Secondary alias only mounts when sysprop override is set.
cb.get("/debug/echo/abc").run().assertStatus(404);
}
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_JettyMicroservice_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_JettyMicroservice_Test.java
index f6a47b22ab..4bb2c837f8 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_JettyMicroservice_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_JettyMicroservice_Test.java
@@ -120,7 +120,7 @@ class EchoMixin_JettyMicroservice_Test extends TestBase {
}
@Test void a03_debugEchoLegacyAliasNotMountedByDefault() throws
Exception {
- // FINISHED-101: /debug/echo/* is no longer a multi-path
default. Default-build hosts
+ // /debug/echo/* is no longer a multi-path default.
Default-build hosts
// route the request through the host's normal routing — which
returns 404 or 500
// depending on container error mapping; both indicate "not
handled by the echo mixin".
var resp = get("/debug/echo/abc");
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_Springboot_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_Springboot_Test.java
index 9a3f24ed50..a62ec24503 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_Springboot_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_Springboot_Test.java
@@ -48,7 +48,7 @@ import org.springframework.test.annotation.*;
* Catches things {@code MockRest} and the Jetty parity test cannot:
* <ul>
* <li>Spring's bean store adapter ({@code SpringBeanStore}) resolving the
host's
- * {@code @Bean EchoMixin} during the FINISHED-72 mixin walk
through
+ * {@code @Bean EchoMixin} during the mixin walk through
* {@link
org.springframework.context.ApplicationContext#getBean(Class)
* ApplicationContext.getBean(...)}.
* <li>End-to-end format-pinned JSON ({@link
org.apache.juneau.rest.server.server.RestResponse#getDirectWriter
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_SvlPathOverride_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_SvlPathOverride_Test.java
index 5a44f06560..576ee6e33b 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_SvlPathOverride_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_SvlPathOverride_Test.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.parallel.*;
* Validates the {@code ${juneau.echo.path:echo}} SVL override on {@link
EchoMixin}.
*
* <p>
- * Per the FINISHED-101 multi-path collapse, the historical {@code
/debug/echo/*} alias (formerly
+ * Per the multi-path collapse, the historical {@code /debug/echo/*} alias
(formerly
* a dual-path default on a single op) is now reached by overriding the SVL
variable to
* {@code debug/echo}. The {@code a02} test exercises that migration scenario.
*
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/RouteIndexMixin_AsMixin_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/RouteIndexMixin_AsMixin_Test.java
index e50e353f07..0d340fbe62 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/RouteIndexMixin_AsMixin_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/RouteIndexMixin_AsMixin_Test.java
@@ -44,7 +44,7 @@ import org.junit.jupiter.api.*;
* </ul>
*
* <p>
- * Per the FINISHED-101 multi-path collapse, the historical {@code /routes}
mount alias
+ * Per the multi-path collapse, the historical {@code /routes} mount alias
* (formerly a dual default on a single op) is now reached via
* {@code -Djuneau.routeindex.path=routes}; that behavior is covered by
* {@code RouteIndexMixin_SvlPathOverride_Test}.
@@ -84,7 +84,7 @@ class RouteIndexMixin_AsMixin_Test extends TestBase {
}
@Test void a02_legacyRoutesAliasNotMountedByDefault() throws Exception {
- // FINISHED-101: /routes is no longer a multi-path default. It
only mounts when the
+ // /routes is no longer a multi-path default. It only mounts
when the
// deployer overrides juneau.routeindex.path=routes.
Default-build hosts get 404 here.
ca.get("/routes").run().assertStatus(404);
}
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/RouteIndexMixin_SvlPathOverride_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/RouteIndexMixin_SvlPathOverride_Test.java
index 05eb4bcb8d..39312167e6 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/RouteIndexMixin_SvlPathOverride_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/ops/RouteIndexMixin_SvlPathOverride_Test.java
@@ -29,7 +29,7 @@ import org.junit.jupiter.api.parallel.*;
* {@link RouteIndexMixin}.
*
* <p>
- * Per the FINISHED-101 multi-path collapse, the historical {@code /routes}
alias (formerly a
+ * Per the multi-path collapse, the historical {@code /routes} alias (formerly
a
* dual-path default on a single op) is now reached by overriding the SVL
variable to
* {@code routes}. The {@code a02} test exercises that migration scenario.
*
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/servlet/RestMixin_HostContext_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/servlet/RestMixin_HostContext_Test.java
index 249a97aa43..25ce7a6b77 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/servlet/RestMixin_HostContext_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/servlet/RestMixin_HostContext_Test.java
@@ -29,7 +29,7 @@ import org.junit.jupiter.api.*;
* <p>
* Verifies the opt-in host-context accessor: it returns the host {@link
RestContext} when the mixin is
* composed via {@code @Rest(mixins=...)}, returns {@code null} when the mixin
is used standalone, and
- * resolves to the single flat top-level host under nested mixins (FINISHED-81
flat-inheritance rule).
+ * resolves to the single flat top-level host under nested mixins
(flat-inheritance rule).
*
* @since 10.0.0
*/
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/springboot/RestPathsRuntimeOverride_Springboot_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/springboot/RestPathsRuntimeOverride_Springboot_Test.java
index c2e5221da8..aa3ed9b48a 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/springboot/RestPathsRuntimeOverride_Springboot_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/springboot/RestPathsRuntimeOverride_Springboot_Test.java
@@ -152,7 +152,7 @@ class RestPathsRuntimeOverride_Springboot_Test extends
TestBase {
//-----------------------------------------------------------------------------------------------------------------
// e — BeanStore parity: getter override resolves identically through
SpringBeanStore as it would
- // through a plain BasicBeanStore (acceptance bullet from the
original work item 73 plan).
+ // through a plain BasicBeanStore.
//-----------------------------------------------------------------------------------------------------------------
@Test
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_AsMixin_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_AsMixin_Test.java
index 01e424b9b1..eeddc9f6af 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_AsMixin_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_AsMixin_Test.java
@@ -41,7 +41,7 @@ import org.junit.jupiter.api.*;
* {@link BasicStaticFiles} default constructor's recursive {@code
cp(...,"htdocs",true)} walk.
* The default {@link BasicStaticFiles} classpath search root still walks both
{@code static/}
* and {@code htdocs/} directories — only the URL-side mount is now
single. Per the
- * FINISHED-101 multi-path collapse, the {@code /htdocs/*} mount alias
(formerly a dual default)
+ * multi-path collapse, the {@code /htdocs/*} mount alias (formerly a dual
default)
* is now reached via {@code -Djuneau.staticfiles.path=htdocs}; that behavior
is covered by
* {@code StaticFilesMixin_SvlPathOverride_Test}.
*
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_CacheControl_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_CacheControl_Test.java
index 3fb906e9ba..58da1645d1 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_CacheControl_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_CacheControl_Test.java
@@ -56,7 +56,7 @@ class StaticFilesMixin_CacheControl_Test extends TestBase {
}
@Test void a02_cacheControlOnLegacyHtdocPath() throws Exception {
- // FINISHED-101: /htdocs/* is no longer a multi-path default on
the mixin, but
+ // /htdocs/* is no longer a multi-path default on the mixin, but
// BasicRestServlet still owns the legacy /htdocs/* via
BasicRestOperations#getHtdoc.
// That handler also reads from BasicStaticFiles, so the
Cache-Control default flows
// through unchanged.
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_ImporterOverride_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_ImporterOverride_Test.java
index 8a114fd4b4..d2945c21f9 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_ImporterOverride_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_ImporterOverride_Test.java
@@ -62,7 +62,7 @@ class StaticFilesMixin_ImporterOverride_Test extends TestBase
{
}
@Test void a02_overrideAppliesAtLegacyHtdocPath() throws Exception {
- // FINISHED-101: /htdocs/* is no longer a multi-path default on
the mixin, but
+ // /htdocs/* is no longer a multi-path default on the mixin, but
// BasicRestServlet still owns the legacy /htdocs/* via
BasicRestOperations#getHtdoc.
// That handler also reads from
BeanStore.getBean(StaticFiles.class), so the importer's
// override still applies.
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_JettyMicroservice_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_JettyMicroservice_Test.java
index ad37d1481a..45291caeb1 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_JettyMicroservice_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_JettyMicroservice_Test.java
@@ -40,8 +40,8 @@ import jakarta.servlet.*;
* Boots a {@link org.apache.juneau.marshall.microservice.Microservice
Microservice} backed by
* {@link org.apache.juneau.marshall.microservice.jetty.JettyConfiguration
JettyConfiguration} on an
* ephemeral port via {@link MicroserviceTestFixture}, mounts a {@link
BasicRestServlet} host with
- * the static-files mixin, and hits the {@code /static/*} URL over real HTTP.
The {@code /htdocs/*} mount has been removed from the mixin's default URL
surface under
- * FINISHED-101 (single path per op), but the {@code Host} class extends
{@link BasicRestServlet}
+ * the static-files mixin, and hits the {@code /static/*} URL over real HTTP.
The {@code /htdocs/*} mount has been removed from the mixin's default URL
surface
+ * (single path per op), but the {@code Host} class extends {@link
BasicRestServlet}
* which still owns the legacy {@code /htdocs/*} via {@code
BasicRestOperations#getHtdoc}; the
* second test below verifies that legacy mount still serves end-to-end.
*
@@ -119,7 +119,7 @@ class StaticFilesMixin_JettyMicroservice_Test extends
TestBase {
}
@Test void a02_getHtdocsFileViaLegacyMount() throws Exception {
- // FINISHED-101: /htdocs/* is no longer a multi-path default on
the mixin, but
+ // /htdocs/* is no longer a multi-path default on the mixin, but
// BasicRestServlet still owns the legacy /htdocs/* via
BasicRestOperations#getHtdoc.
var resp = get("/htdocs/javadoc.css");
assertEquals(200, resp.statusCode());
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_OpenApiHidden_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_OpenApiHidden_Test.java
index 0cc4868642..cf9e6dcce7 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_OpenApiHidden_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_OpenApiHidden_Test.java
@@ -77,7 +77,7 @@ class StaticFilesMixin_OpenApiHidden_Test extends TestBase {
c.get("/static/javadoc.css")
.run()
.assertStatus(200);
- // FINISHED-101: /htdocs/* is no longer a multi-path default;
migration covered by
+ // /htdocs/* is no longer a multi-path default; migration
covered by
// StaticFilesMixin_SvlPathOverride_Test#a02.
c.get("/htdocs/javadoc.css")
.run()
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_SpringbootMetaInf_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_SpringbootMetaInf_Test.java
index 1d1c4bf891..d7f5541de3 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_SpringbootMetaInf_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_SpringbootMetaInf_Test.java
@@ -124,7 +124,7 @@ class StaticFilesMixin_SpringbootMetaInf_Test {
}
@Test void a02_metaInfResourcesServedViaLegacyHtdocsMount() throws
Exception {
- // FINISHED-101: /htdocs/* is no longer a multi-path default on
the mixin, but
+ // /htdocs/* is no longer a multi-path default on the mixin, but
// BasicSpringRestServlet still owns the legacy /htdocs/* via
BasicRestOperations#getHtdoc.
// The same META-INF/resources file is reachable through the
legacy mount.
var resp = get("/htdocs/spring-fixture.txt");
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_Springboot_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_Springboot_Test.java
index 1d5159a843..092708e7ab 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_Springboot_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_Springboot_Test.java
@@ -130,7 +130,7 @@ class StaticFilesMixin_Springboot_Test {
}
@Test void a02_htdocsPathServesFileViaLegacyMount() throws Exception {
- // FINISHED-101: /htdocs/* is no longer a multi-path default on
the mixin, but
+ // /htdocs/* is no longer a multi-path default on the mixin, but
// BasicSpringRestServlet still owns the legacy /htdocs/* via
BasicRestOperations#getHtdoc.
var resp = get("/htdocs/javadoc.css");
assertEquals(200, resp.statusCode());
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_Standalone_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_Standalone_Test.java
index cd9e5686ac..0286dbad15 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_Standalone_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_Standalone_Test.java
@@ -41,7 +41,7 @@ class StaticFilesMixin_Standalone_Test extends TestBase {
}
@Test void a02_legacyHtdocsAliasNotMountedByDefault() throws Exception {
- // FINISHED-101: /htdocs/* is no longer a multi-path default.
Migration covered by
+ // /htdocs/* is no longer a multi-path default. Migration
covered by
// StaticFilesMixin_SvlPathOverride_Test#a02.
c.get("/htdocs/javadoc.css")
.run()
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_SvlPathOverride_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_SvlPathOverride_Test.java
index 7aa5a6dc04..78eccd22b6 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_SvlPathOverride_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_SvlPathOverride_Test.java
@@ -28,7 +28,7 @@ import org.junit.jupiter.api.parallel.*;
* {@link StaticFilesMixin}.
*
* <p>
- * Per the FINISHED-101 multi-path collapse, the historical {@code /htdocs/*}
alias is now
+ * Per the multi-path collapse, the historical {@code /htdocs/*} alias is now
* reached by setting the override to {@code htdocs} — the same path the
classpath
* {@link BasicStaticFiles} root walks by default. The {@code a02} test
exercises that exact
* migration scenario.
diff --git
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/view/freemarker/FreemarkerMixin_MockRest_Test.java
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/view/freemarker/FreemarkerMixin_MockRest_Test.java
index d37a9ec269..4748d51250 100644
---
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/view/freemarker/FreemarkerMixin_MockRest_Test.java
+++
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/view/freemarker/FreemarkerMixin_MockRest_Test.java
@@ -44,7 +44,7 @@ import org.junit.jupiter.api.*;
* {@link Rest#responseProcessors() @Rest(responseProcessors=...)} declaration
appends to the
* chain, so the default HTML serializer wins under MockRest and the {@code
FreemarkerView} is
* serialized as a Juneau-bean HTML table instead of routed through
FreeMarker. The response-
- * processor "prepend" mechanism that fixes this is tracked separately (work
item 96) and blocks
+ * processor "prepend" mechanism that fixes this blocks
* the typed-handler integration matrix for all four sibling view modules (JSP
/ Thymeleaf /
* Mustache / FreeMarker). The typed-handler test surface lights up alongside
the real-container
* coverage once that prereq lands — tracked as the FreeMarker analog of
the deferred JSP /
diff --git
a/juneau-microservice/juneau-microservice-jetty/src/test/java/org/apache/juneau/microservice/jetty/RestPathsRuntimeOverride_JettyMount_Test.java
b/juneau-microservice/juneau-microservice-jetty/src/test/java/org/apache/juneau/microservice/jetty/RestPathsRuntimeOverride_JettyMount_Test.java
index 3b3f547d7c..0ba656b101 100644
---
a/juneau-microservice/juneau-microservice-jetty/src/test/java/org/apache/juneau/microservice/jetty/RestPathsRuntimeOverride_JettyMount_Test.java
+++
b/juneau-microservice/juneau-microservice-jetty/src/test/java/org/apache/juneau/microservice/jetty/RestPathsRuntimeOverride_JettyMount_Test.java
@@ -42,7 +42,7 @@ import jakarta.servlet.*;
* <li>SVL substitution applied per-element to {@code
@Rest(paths={"$C{key}"})} resolves through the
* microservice's bean store ({@link Config} bean) before the
comma-split and produces the
* runtime-resolved mount paths.
- * <li>Collision detection still runs on the resolved paths (FINISHED-72
invariant).
+ * <li>Collision detection still runs on the resolved paths.
* </ul>
*
* <p>
diff --git
a/juneau-microservice/juneau-microservice/src/test/java/org/apache/juneau/microservice/Microservice_ValueAdoption_Test.java
b/juneau-microservice/juneau-microservice/src/test/java/org/apache/juneau/microservice/Microservice_ValueAdoption_Test.java
index 8795459911..586dea2308 100644
---
a/juneau-microservice/juneau-microservice/src/test/java/org/apache/juneau/microservice/Microservice_ValueAdoption_Test.java
+++
b/juneau-microservice/juneau-microservice/src/test/java/org/apache/juneau/microservice/Microservice_ValueAdoption_Test.java
@@ -30,7 +30,7 @@ import org.junit.jupiter.api.parallel.*;
* {@link Microservice.Builder}.
*
* <p>
- * 3-test triad per migrated field per OQA #4 — system property set, unset
(default = null), and
+ * 3-test triad per migrated field — system property set, unset (default =
null), and
* {@code Settings.setGlobal} override.
*/
@JettyMicroserviceTest
diff --git
a/juneau-petstore/juneau-petstore-springboot/src/test/java/org/apache/juneau/petstore/springboot/PetstoreSpringboot_Test.java
b/juneau-petstore/juneau-petstore-springboot/src/test/java/org/apache/juneau/petstore/springboot/PetstoreSpringboot_Test.java
index 533d070283..21bf51d3b8 100644
---
a/juneau-petstore/juneau-petstore-springboot/src/test/java/org/apache/juneau/petstore/springboot/PetstoreSpringboot_Test.java
+++
b/juneau-petstore/juneau-petstore-springboot/src/test/java/org/apache/juneau/petstore/springboot/PetstoreSpringboot_Test.java
@@ -67,7 +67,7 @@ class PetstoreSpringboot_Test {
* REST servlet to initialize. The first request to the group resource
({@code /}) forces one-time
* {@code RestContext} setup of the root <i>and all of its child
resources</i> (serializer/parser metadata,
* {@code HtmlDocSerializer} construction) in a single request. Under a
loaded CI agent this cold start can exceed
- * the per-request timeout the test methods use (it timed out at
exactly 10s in build #2472). Absorbing that
+ * the per-request timeout the test methods use (it has timed out at
exactly 10s under a loaded CI run before). Absorbing that
* startup cost here once (with a generous budget + retry) removes the
race from {@code a01} while keeping the
* per-test timeouts tight. Mirrors the same guard in {@code
PetstoreJetty_Test}.
*/
diff --git
a/juneau-rest/juneau-rest-client-classic/src/test/java/org/apache/juneau/rest/client/classic/assertion/FluentResponseHeaderAssertion_Test.java
b/juneau-rest/juneau-rest-client-classic/src/test/java/org/apache/juneau/rest/client/classic/assertion/FluentResponseHeaderAssertion_Test.java
index a136f73846..ae0b7394a6 100644
---
a/juneau-rest/juneau-rest-client-classic/src/test/java/org/apache/juneau/rest/client/classic/assertion/FluentResponseHeaderAssertion_Test.java
+++
b/juneau-rest/juneau-rest-client-classic/src/test/java/org/apache/juneau/rest/client/classic/assertion/FluentResponseHeaderAssertion_Test.java
@@ -22,7 +22,7 @@ import org.apache.juneau.rest.client.classic.*;
import org.junit.jupiter.api.*;
/**
- * Validates {@link FluentResponseHeaderAssertion} tolerates a null {@code
value} (TODO-286 #9/#10 null-tolerance fix).
+ * Validates {@link FluentResponseHeaderAssertion} tolerates a null {@code
value}.
*
* <p>
* A null {@link ResponseHeader} used to NPE in both constructors ({@code
value.asString()}) and in every transform
diff --git
a/juneau-rest/juneau-rest-mock/src/test/java/org/apache/juneau/rest/mock/MockRestClient_TestOverride_Test.java
b/juneau-rest/juneau-rest-mock/src/test/java/org/apache/juneau/rest/mock/MockRestClient_TestOverride_Test.java
index 1c11a0c075..a3dc643849 100644
---
a/juneau-rest/juneau-rest-mock/src/test/java/org/apache/juneau/rest/mock/MockRestClient_TestOverride_Test.java
+++
b/juneau-rest/juneau-rest-mock/src/test/java/org/apache/juneau/rest/mock/MockRestClient_TestOverride_Test.java
@@ -24,7 +24,7 @@ import org.apache.juneau.test.junit.*;
import org.junit.jupiter.api.*;
/**
- * End-to-end tests for {@code
MockRestClient.Builder.overridingBeanStore(...)} (Phase 1 of work item 35).
+ * End-to-end tests for {@code
MockRestClient.Builder.overridingBeanStore(...)}.
*
* <p>
* Builds a {@link TestBeanStore} overlay, threads it into {@link
MockRestClient} via the new builder
diff --git
a/juneau-rest/juneau-rest-mock/src/test/java/org/apache/juneau/rest/reactive/ReactiveOptIn_BareServer_Test.java
b/juneau-rest/juneau-rest-mock/src/test/java/org/apache/juneau/rest/reactive/ReactiveOptIn_BareServer_Test.java
index c80e6e9ddc..fd8a51a58b 100644
---
a/juneau-rest/juneau-rest-mock/src/test/java/org/apache/juneau/rest/reactive/ReactiveOptIn_BareServer_Test.java
+++
b/juneau-rest/juneau-rest-mock/src/test/java/org/apache/juneau/rest/reactive/ReactiveOptIn_BareServer_Test.java
@@ -40,7 +40,7 @@ import org.junit.jupiter.api.*;
* <p>
* The positive activation tests live in {@code juneau-integration-tests}
(where the reactive module IS on the
* classpath); this negative test cannot live there because the module's
presence auto-activates the
- * processor for every resource. See {@code FINISHED-119}/{@code FINISHED-120}
for the opt-in design.
+ * processor for every resource.
*/
@SuppressWarnings({
"resource" // Closeable test fixtures are intentionally
held/unassigned; lifecycle is managed by the test framework.
diff --git
a/juneau-rest/juneau-rest-server-auth-jwt/src/main/java/org/apache/juneau/rest/server/auth/jwt/JwksCache.java
b/juneau-rest/juneau-rest-server-auth-jwt/src/main/java/org/apache/juneau/rest/server/auth/jwt/JwksCache.java
index ff493ab7d8..29d70fdf9e 100644
---
a/juneau-rest/juneau-rest-server-auth-jwt/src/main/java/org/apache/juneau/rest/server/auth/jwt/JwksCache.java
+++
b/juneau-rest/juneau-rest-server-auth-jwt/src/main/java/org/apache/juneau/rest/server/auth/jwt/JwksCache.java
@@ -73,7 +73,7 @@ import com.nimbusds.jose.proc.*;
*/
final class JwksCache implements JWKSource<SecurityContext> {
- /** Module logger. Warnings on JWKS fetch failures are intentionally
loud per Resolved Decision #2. */
+ /** Module logger. Warnings on JWKS fetch failures are intentionally
loud. */
private static final Logger LOG =
Logger.getLogger(JwksCache.class.getName());
/** Selector that pulls every key from the upstream source. */
diff --git
a/juneau-rest/juneau-rest-server-auth-jwt/src/test/java/org/apache/juneau/rest/server/auth/jwt/JwtTokenValidator_ValueAdoption_Test.java
b/juneau-rest/juneau-rest-server-auth-jwt/src/test/java/org/apache/juneau/rest/server/auth/jwt/JwtTokenValidator_ValueAdoption_Test.java
index 6dc5108ca6..7cdcc4f2ce 100644
---
a/juneau-rest/juneau-rest-server-auth-jwt/src/test/java/org/apache/juneau/rest/server/auth/jwt/JwtTokenValidator_ValueAdoption_Test.java
+++
b/juneau-rest/juneau-rest-server-auth-jwt/src/test/java/org/apache/juneau/rest/server/auth/jwt/JwtTokenValidator_ValueAdoption_Test.java
@@ -28,7 +28,7 @@ import org.junit.jupiter.api.parallel.*;
* Acceptance tests for {@code @Value}-driven defaults on {@link
JwtTokenValidator.Builder}.
*
* <p>
- * 3-test triad per migrated field per OQA #4 — system property set, unset
(default), and {@code Settings.setGlobal}.
+ * 3-test triad per migrated field — system property set, unset (default), and
{@code Settings.setGlobal}.
*/
@ResourceLock(Resources.SYSTEM_PROPERTIES)
class JwtTokenValidator_ValueAdoption_Test {
diff --git
a/juneau-rest/juneau-rest-server-reactive/src/test/java/org/apache/juneau/rest/server/reactive/ReactiveResponseProcessor_Test.java
b/juneau-rest/juneau-rest-server-reactive/src/test/java/org/apache/juneau/rest/server/reactive/ReactiveResponseProcessor_Test.java
index 85ac411561..f5b22be643 100644
---
a/juneau-rest/juneau-rest-server-reactive/src/test/java/org/apache/juneau/rest/server/reactive/ReactiveResponseProcessor_Test.java
+++
b/juneau-rest/juneau-rest-server-reactive/src/test/java/org/apache/juneau/rest/server/reactive/ReactiveResponseProcessor_Test.java
@@ -32,7 +32,7 @@ import org.junit.jupiter.api.*;
/**
* Tests {@link ReactiveResponseProcessor} using only the JDK-native
* {@link Flow.Publisher Flow.Publisher} return type (no external reactive
- * library). This is the MAYBE-120 spine: {@code Flow.Publisher<SseEvent>} SSE
streaming plus the
+ * library). This is the spine: {@code Flow.Publisher<SseEvent>} SSE streaming
plus the
* shared buffer / NDJSON shapes that all reactive types funnel through.
*
* <p>
diff --git
a/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_Springboot_Test.java
b/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_Springboot_Test.java
index 5e37034c09..267908dca4 100644
---
a/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_Springboot_Test.java
+++
b/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/convention/VersionMixin_Springboot_Test.java
@@ -49,7 +49,7 @@ import org.springframework.test.annotation.*;
* {@link VersionMixin_JettyMicroservice_Test Jetty parity test} cannot:
* <ul>
* <li>Spring's bean store adapter ({@code SpringBeanStore}) resolving the
host's
- * {@code @Bean VersionMixin} during the FINISHED-72 mixin walk
through
+ * {@code @Bean VersionMixin} during the mixin walk through
* {@link
org.springframework.context.ApplicationContext#getBean(Class)
* ApplicationContext.getBean(...)}.
* <li>End-to-end format-pinned JSON ({@link
org.apache.juneau.rest.server.server.RestResponse#getDirectWriter
@@ -122,7 +122,7 @@ class VersionMixin_Springboot_Test {
}
@Test void a02_infoLegacyAliasNotMountedByDefault() throws Exception {
- // FINISHED-101: /info is no longer a multi-path default.
Default-build hosts route
+ // /info is no longer a multi-path default. Default-build hosts
route
// the request through the host's normal routing (404 or 500
from Spring Boot's
// error-page mapping); both indicate "not handled by the
version mixin".
var resp = get("/info");
@@ -131,7 +131,7 @@ class VersionMixin_Springboot_Test {
}
@Test void a03_aboutLegacyAliasNotMountedByDefault() throws Exception {
- // FINISHED-101: /about is no longer a multi-path default.
Migration covered by
+ // /about is no longer a multi-path default. Migration covered
by
// VersionMixin_SvlPathOverride_Test#a02.
var resp = get("/about");
assertTrue(resp.statusCode() == 404 || resp.statusCode() == 500,
diff --git
a/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_Springboot_Test.java
b/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_Springboot_Test.java
index 9a3f24ed50..a62ec24503 100644
---
a/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_Springboot_Test.java
+++
b/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/ops/EchoMixin_Springboot_Test.java
@@ -48,7 +48,7 @@ import org.springframework.test.annotation.*;
* Catches things {@code MockRest} and the Jetty parity test cannot:
* <ul>
* <li>Spring's bean store adapter ({@code SpringBeanStore}) resolving the
host's
- * {@code @Bean EchoMixin} during the FINISHED-72 mixin walk
through
+ * {@code @Bean EchoMixin} during the mixin walk through
* {@link
org.springframework.context.ApplicationContext#getBean(Class)
* ApplicationContext.getBean(...)}.
* <li>End-to-end format-pinned JSON ({@link
org.apache.juneau.rest.server.server.RestResponse#getDirectWriter
diff --git
a/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/springboot/RestPathsRuntimeOverride_Springboot_Test.java
b/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/springboot/RestPathsRuntimeOverride_Springboot_Test.java
index 887752ee02..3e385e2f65 100644
---
a/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/springboot/RestPathsRuntimeOverride_Springboot_Test.java
+++
b/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/springboot/RestPathsRuntimeOverride_Springboot_Test.java
@@ -154,7 +154,7 @@ class RestPathsRuntimeOverride_Springboot_Test extends
TestBase {
//-----------------------------------------------------------------------------------------------------------------
// e — BeanStore parity: getter override resolves identically through
SpringBeanStore as it would
- // through a plain BasicBeanStore (acceptance bullet from the
original work item 73 plan).
+ // through a plain BasicBeanStore.
//-----------------------------------------------------------------------------------------------------------------
@Test
diff --git
a/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_SpringbootMetaInf_Test.java
b/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_SpringbootMetaInf_Test.java
index 1d1c4bf891..d7f5541de3 100644
---
a/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_SpringbootMetaInf_Test.java
+++
b/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_SpringbootMetaInf_Test.java
@@ -124,7 +124,7 @@ class StaticFilesMixin_SpringbootMetaInf_Test {
}
@Test void a02_metaInfResourcesServedViaLegacyHtdocsMount() throws
Exception {
- // FINISHED-101: /htdocs/* is no longer a multi-path default on
the mixin, but
+ // /htdocs/* is no longer a multi-path default on the mixin, but
// BasicSpringRestServlet still owns the legacy /htdocs/* via
BasicRestOperations#getHtdoc.
// The same META-INF/resources file is reachable through the
legacy mount.
var resp = get("/htdocs/spring-fixture.txt");
diff --git
a/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_Springboot_Test.java
b/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_Springboot_Test.java
index 1d5159a843..092708e7ab 100644
---
a/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_Springboot_Test.java
+++
b/juneau-rest/juneau-rest-server-springboot/src/test/java/org/apache/juneau/rest/server/staticfile/StaticFilesMixin_Springboot_Test.java
@@ -130,7 +130,7 @@ class StaticFilesMixin_Springboot_Test {
}
@Test void a02_htdocsPathServesFileViaLegacyMount() throws Exception {
- // FINISHED-101: /htdocs/* is no longer a multi-path default on
the mixin, but
+ // /htdocs/* is no longer a multi-path default on the mixin, but
// BasicSpringRestServlet still owns the legacy /htdocs/* via
BasicRestOperations#getHtdoc.
var resp = get("/htdocs/javadoc.css");
assertEquals(200, resp.statusCode());
diff --git
a/juneau-rest/juneau-rest-server-tracing-otel/src/test/java/org/apache/juneau/rest/server/tracing/TraceContextResponseProcessor_Test.java
b/juneau-rest/juneau-rest-server-tracing-otel/src/test/java/org/apache/juneau/rest/server/tracing/TraceContextResponseProcessor_Test.java
index a4bd504e41..7042c7434c 100644
---
a/juneau-rest/juneau-rest-server-tracing-otel/src/test/java/org/apache/juneau/rest/server/tracing/TraceContextResponseProcessor_Test.java
+++
b/juneau-rest/juneau-rest-server-tracing-otel/src/test/java/org/apache/juneau/rest/server/tracing/TraceContextResponseProcessor_Test.java
@@ -47,7 +47,7 @@ import io.opentelemetry.sdk.trace.export.*;
* header injection.
*
* <p>
- * Reuses FINISHED-67's OpenTelemetry SDK + {@link InMemorySpanExporter}
test-fixture pattern: a
+ * Reuses the OpenTelemetry SDK + {@link InMemorySpanExporter} test-fixture
pattern: a
* statically-wired SDK is installed before the {@code @Rest} resources build
their
* {@link MockRestClient}s so the {@link OtelTracerHook} bridge captures the
server-started span's
* context and stashes the rendered headers for the response processor to
write.
diff --git
a/juneau-rest/juneau-rest-server-view-freemarker/src/test/java/org/apache/juneau/rest/server/view/freemarker/FreemarkerMixin_MockRest_Test.java
b/juneau-rest/juneau-rest-server-view-freemarker/src/test/java/org/apache/juneau/rest/server/view/freemarker/FreemarkerMixin_MockRest_Test.java
index 4c524ee294..36c3b82913 100644
---
a/juneau-rest/juneau-rest-server-view-freemarker/src/test/java/org/apache/juneau/rest/server/view/freemarker/FreemarkerMixin_MockRest_Test.java
+++
b/juneau-rest/juneau-rest-server-view-freemarker/src/test/java/org/apache/juneau/rest/server/view/freemarker/FreemarkerMixin_MockRest_Test.java
@@ -44,7 +44,7 @@ import org.junit.jupiter.api.*;
* {@link Rest#responseProcessors() @Rest(responseProcessors=...)} declaration
appends to the
* chain, so the default HTML serializer wins under MockRest and the {@code
FreemarkerView} is
* serialized as a Juneau-bean HTML table instead of routed through
FreeMarker. The response-
- * processor "prepend" mechanism that fixes this is tracked separately (work
item 96) and blocks
+ * processor "prepend" mechanism that fixes this blocks
* the typed-handler integration matrix for all four sibling view modules (JSP
/ Thymeleaf /
* Mustache / FreeMarker). The typed-handler test surface lights up alongside
the real-container
* coverage once that prereq lands — tracked as the FreeMarker analog of
the deferred JSP /
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestContext.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestContext.java
index 1b90f3e8e7..85ca093317 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestContext.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestContext.java
@@ -373,7 +373,6 @@ public class RestContext extends Context {
* chain, and would have no {@code noInherit} analog — it must NOT
reuse the mixin override-resolution path.
* The {@code Child} variant is intentionally shaped so it can later
widen to reference a {@code ResolvedChild}
* (mirroring how {@code Mixin} references a {@code ResolvedMixin})
without re-plumbing this discriminator.
- * See {@code MAYBE-182} for the parked {@code @Child} design.
*
* @since 10.0.0
*/
@@ -1546,7 +1545,7 @@ public class RestContext extends Context {
*/
private final Memoizer<NamedAttributeMap> defaultRequestAttributes =
memoizer(() -> {
var v = Holder.of(NamedAttributeMap.create());
- // Resolution moved onto the unified noInherit-aware walk
(cleanup #3): getRestAnnotationsForProperty yields
+ // Resolution goes through the unified noInherit-aware walk:
getRestAnnotationsForProperty yields
// the same parent-to-child order getRestAnnotationsTopDown did
for non-mixin contexts, plus host→mixin
// inheritance, noInherit cutoff, and @Mixin override injection
for mixin sub-contexts.
getRestAnnotationsForProperty(PROPERTY_defaultRequestAttributes).forEach(ai ->
Arrays.stream(ai.inner().defaultRequestAttributes())
@@ -1569,7 +1568,7 @@ public class RestContext extends Context {
*/
private final Memoizer<HttpHeaderList> defaultRequestHeaders =
memoizer(() -> {
var v = Holder.of(HttpHeaderList.create());
- // Resolution moved onto the unified noInherit-aware walk
(cleanup #3) — see defaultRequestAttributes.
+ // Resolution goes through the unified noInherit-aware walk —
see defaultRequestAttributes.
// defaultAccept/defaultContentType are folded into this same
walk (as they always were); they key off
// the defaultRequestHeaders property for noInherit/override
purposes.
getRestAnnotationsForProperty(PROPERTY_defaultRequestHeaders).forEach(ai -> {
@@ -1595,7 +1594,7 @@ public class RestContext extends Context {
*/
private final Memoizer<HttpHeaderList> defaultResponseHeaders =
memoizer(() -> {
var v = Holder.of(HttpHeaderList.create());
- // Resolution moved onto the unified noInherit-aware walk
(cleanup #3) — see defaultRequestAttributes.
+ // Resolution goes through the unified noInherit-aware walk —
see defaultRequestAttributes.
getRestAnnotationsForProperty(PROPERTY_defaultResponseHeaders).forEach(ai ->
Arrays.stream(ai.inner().defaultResponseHeaders()).filter(StringUtils::isNotBlank).map(this::resolve).filter(StringUtils::isNotBlank).map(HttpStringHeader::ofPair).forEach(v.get()::setDefault));
beanStore().createBeanFromMethod(HttpHeaderList.class,
resource().get(), x -> isBeanMethod(x, PROP_defaultResponseHeaders),
v.get()).ifPresent(v::set);
return v.get();
@@ -1686,7 +1685,7 @@ public class RestContext extends Context {
// Walk @Rest annotations parent-to-child; child wins because
location() prepends.
// Resolve location strings against the simple resolver — full
resolver isn't available yet
// (it depends on getMessages()).
- // NOTE (cleanup #3): messages is structurally bundle-CHAINED
(not list/replace-merged), so it keeps its
+ // NOTE: messages is structurally bundle-CHAINED (not
list/replace-merged), so it keeps its
// own local location walk + Messages.chain rather than routing
through getRestAnnotationsForProperty
// (which would double-count host locations for a mixin
context). The two @Mixin hooks are layered on
// explicitly instead: (1) a host @Mixin(messages=...) location
is applied last (highest priority), and
@@ -3327,7 +3326,7 @@ public class RestContext extends Context {
}
}
var resolved = annotations.subList(0, cutoff);
- // Mixin override injection (cleanup #3): for a mixin
sub-context carrying host @Mixin overrides, the
+ // Mixin override injection: for a mixin sub-context carrying
host @Mixin overrides, the
// synthetic override annotation is the most-derived
contribution. `resolved` is in child-to-parent order
// (it is reversed to parent-to-child by rstream below), so
prepending here places the override LAST in the
// emitted stream — list-shaped props append it after the
inherited host+mixin chain, replace-shaped props
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestOpContext.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestOpContext.java
index 7d2c8802a4..c426c7bf1c 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestOpContext.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestOpContext.java
@@ -493,7 +493,7 @@ public class RestOpContext extends Context implements
Comparable<RestOpContext>
*
* <p>
* An {@code @Bean RestGuardList} bean (via the bean store or an {@code
@Bean} method
- * with matching {@code methodScope}) REPLACES the entire
annotation-derived list (Decision #1).
+ * with matching {@code methodScope}) REPLACES the entire
annotation-derived list.
*/
private final Memoizer<RestGuard[]> guards = memoizer(() -> {
var bs = beanStore();
diff --git
a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/server/assertions/FluentRequestFormParamAssertion_Test.java
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/server/assertions/FluentRequestFormParamAssertion_Test.java
index e74480762d..d438a2bbb9 100644
---
a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/server/assertions/FluentRequestFormParamAssertion_Test.java
+++
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/server/assertions/FluentRequestFormParamAssertion_Test.java
@@ -23,7 +23,7 @@ import org.apache.juneau.rest.server.httppart.*;
import org.junit.jupiter.api.*;
/**
- * Validates {@link FluentRequestFormParamAssertion} tolerates a null {@code
value} (TODO-286 #6 null-tolerance fix).
+ * Validates {@link FluentRequestFormParamAssertion} tolerates a null {@code
value}.
*
* <p>
* A null {@link RequestFormParam} used to NPE in the constructor ({@code
value.asString()}) and in every transform
diff --git
a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/server/assertions/FluentRequestHeaderAssertion_Test.java
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/server/assertions/FluentRequestHeaderAssertion_Test.java
index baa71235b2..d56e24a48b 100644
---
a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/server/assertions/FluentRequestHeaderAssertion_Test.java
+++
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/server/assertions/FluentRequestHeaderAssertion_Test.java
@@ -60,7 +60,7 @@ class FluentRequestHeaderAssertion_Test extends TestBase {
assertFalse(e.getMessage().startsWith("CUSTOM "));
}
- // TODO-286 #5: a null RequestHeader used to NPE in the constructor
(value.asString()) and in every
+ // A null RequestHeader used to NPE in the constructor
(value.asString()) and in every
// transform method (value.asBoolean(), etc.). Verify null is now
tolerated end-to-end.
@Test void a03_nullValue_chainedConstructor_doesNotThrow() {
diff --git
a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/server/assertions/FluentRequestQueryParamAssertion_Test.java
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/server/assertions/FluentRequestQueryParamAssertion_Test.java
index 10cefe827a..e6a64e35bc 100644
---
a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/server/assertions/FluentRequestQueryParamAssertion_Test.java
+++
b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/server/assertions/FluentRequestQueryParamAssertion_Test.java
@@ -23,7 +23,7 @@ import org.apache.juneau.rest.server.httppart.*;
import org.junit.jupiter.api.*;
/**
- * Validates {@link FluentRequestQueryParamAssertion} tolerates a null {@code
value} (TODO-286 #4 null-tolerance fix).
+ * Validates {@link FluentRequestQueryParamAssertion} tolerates a null {@code
value}.
*
* <p>
* A null {@link RequestQueryParam} used to NPE in the constructor ({@code
value.asString()}) and in every transform