You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2026/06/03 17:16:53 UTC

(juneau) branch master updated: TODO-999 final pre-release cleanup: bug fixes + code hygiene

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 ade27d12cc TODO-999 final pre-release cleanup: bug fixes + code hygiene
ade27d12cc is described below

commit ade27d12ccc32a1a2aed237bc82a24e8ec1c94c8
Author: James Bognar <ja...@apache.org>
AuthorDate: Wed Jun 3 13:16:42 2026 -0400

    TODO-999 final pre-release cleanup: bug fixes + code hygiene
    
    - Fix Sonar BLOCKER (TraceContextResponseProcessor always same return)
    - Fix lock not released on all paths (SimpleLock)
    - Fix unsafe temp directory permissions (TomcatServerComponent)
    - Fix replaceAll with non-regex literals (LogEntryFormatter)
    - Fix null Boolean returns (BooleanFormat, MarshalledPropertyPostProcessor)
    - Fix null dereference risks (MarshalledMap, MarshalledList)
    - Normalize @SuppressWarnings to canonical multiline brace form (346 files)
    - Strip TODO-execution vocabulary from source comments (task 4)
    - Resolve TODO/FIXME/XXX markers (task 5)
    - Hoist duplicate @SuppressWarnings to outer class in 6 session files
    - Update juneau-code-conventions skill (S119, S1452, S1192, S115 policies)
    - Add task 7 (f()/fs() MessageFormat migration) to TODO-999
    
    Co-authored-by: Cursor <cu...@cursor.com>
---
 .../org/apache/juneau/bean/mcp/McpMethods.java     |  4 +-
 .../org/apache/juneau/bean/mcp/McpProtocol.java    |  4 +-
 .../org/apache/juneau/bean/swagger/Swagger.java    |  1 -
 .../org/apache/juneau/junit/bct/Listifiers.java    |  1 -
 .../org/apache/juneau/commons/bean/BeanInfo.java   | 12 +++-
 .../org/apache/juneau/commons/bean/BeanMap.java    |  8 ++-
 .../org/apache/juneau/commons/bean/BeanMeta.java   |  5 +-
 .../juneau/commons/bean/BeanPropAnnotation.java    |  9 ++-
 .../commons/bean/BeanProxyInvocationHandler.java   |  4 +-
 .../juneau/commons/bean/BeanTypeAnnotation.java    |  9 ++-
 .../apache/juneau/commons/collections/Lists.java   |  2 +-
 .../apache/juneau/commons/collections/Maps.java    |  2 +-
 .../apache/juneau/commons/collections/Sets.java    |  2 +-
 .../juneau/commons/concurrent/SimpleLock.java      | 27 +++++----
 .../commons/conversion/CachingConverter.java       | 28 +++++++---
 .../juneau/commons/inject/BasicBeanStore.java      | 40 ++++++++++----
 .../juneau/commons/inject/BeanInstantiator.java    | 16 ++++--
 .../org/apache/juneau/commons/inject/Snapshot.java |  4 +-
 .../juneau/commons/inject/ValueResolver.java       |  2 +-
 .../juneau/commons/inject/WritableBeanStore.java   | 12 +++-
 .../juneau/commons/io/NoCloseOutputStream.java     |  4 +-
 .../apache/juneau/commons/io/NoCloseWriter.java    |  4 +-
 .../juneau/commons/io/ReaderInputStream.java       |  4 +-
 .../juneau/commons/reflect/AnnotationInfo.java     |  2 +-
 .../commons/settings/DotenvPropertySource.java     |  4 +-
 .../apache/juneau/commons/settings/Settings.java   |  2 +-
 .../org/apache/juneau/commons/svl/ArgCoercer.java  |  6 +-
 .../apache/juneau/commons/svl/ScriptSegment.java   | 28 +++-------
 .../org/apache/juneau/commons/svl/VarResolver.java |  8 ++-
 .../org/apache/juneau/commons/svl/VarTemplate.java |  6 +-
 .../juneau/commons/svl/VarTemplateCompiler.java    |  8 ++-
 .../commons/svl/functions/ArithmeticFunctions.java |  4 +-
 .../commons/svl/functions/BooleanFunctions.java    |  4 +-
 .../svl/functions/ConditionalFunctions.java        |  9 +--
 .../commons/svl/functions/DateFunctions.java       |  4 +-
 .../commons/svl/functions/EncodingFunctions.java   |  8 ++-
 .../commons/svl/functions/JsonFunctions.java       | 20 +++++--
 .../juneau/commons/svl/functions/JsonShortcut.java |  4 +-
 .../juneau/commons/svl/functions/MiniJson.java     |  8 ++-
 .../commons/svl/functions/RandomFunctions.java     |  4 +-
 .../commons/svl/functions/RegexFunctions.java      |  4 +-
 .../commons/svl/functions/StringFunctions.java     | 13 +++--
 .../svl/functions/TypeConversionFunctions.java     |  4 +-
 .../juneau/commons/utils/CollectionUtils.java      | 18 +++---
 .../org/apache/juneau/commons/utils/FileUtils.java |  4 +-
 .../org/apache/juneau/commons/utils/IoUtils.java   |  8 ++-
 .../apache/juneau/commons/utils/StringUtils.java   |  4 +-
 .../org/apache/juneau/commons/utils/Utils.java     |  2 +-
 .../config/ConfigPropertySourceProvider.java       |  4 +-
 .../juneau/junit5/JuneauBeanStoreExtension.java    | 10 ++--
 .../juneau/jena/annotation/RdfApplyAnnotation.java |  4 +-
 .../jena/annotation/RdfConfigAnnotation.java       |  8 ++-
 .../java/org/apache/juneau/BigNumberFormat.java    |  4 +-
 .../main/java/org/apache/juneau/BooleanFormat.java | 18 +++---
 .../src/main/java/org/apache/juneau/Constants.java |  2 +-
 .../main/java/org/apache/juneau/FloatFormat.java   |  4 +-
 .../main/java/org/apache/juneau/LocaleFormat.java  |  4 +-
 .../java/org/apache/juneau/MarshalledFilter.java   |  8 ++-
 .../juneau/MarshalledPropertyPostProcessor.java    | 25 +++++----
 .../java/org/apache/juneau/MarshallingSession.java |  2 +-
 .../juneau/annotation/BeanCtorApplyAnnotation.java |  4 +-
 .../annotation/BeanIgnoreApplyAnnotation.java      |  4 +-
 .../juneau/annotation/BeanPropApplyAnnotation.java |  4 +-
 .../juneau/annotation/BeanTypeApplyAnnotation.java |  4 +-
 .../juneau/annotation/ExampleApplyAnnotation.java  |  4 +-
 .../annotation/MarshalledApplyAnnotation.java      |  4 +-
 .../apache/juneau/annotation/MarshalledConfig.java |  4 +-
 .../MarshalledIgnoreApplyAnnotation.java           |  4 +-
 .../annotation/MarshalledPropApplyAnnotation.java  |  4 +-
 .../annotation/NamePropertyApplyAnnotation.java    |  4 +-
 .../annotation/ParentPropertyApplyAnnotation.java  |  4 +-
 .../juneau/annotation/SchemaApplyAnnotation.java   |  4 +-
 .../juneau/annotation/SwapApplyAnnotation.java     |  4 +-
 .../juneau/annotation/UriApplyAnnotation.java      |  4 +-
 .../apache/juneau/bson/BsonSerializerSession.java  |  8 ++-
 .../bson/annotation/BsonApplyAnnotation.java       |  4 +-
 .../cbor/annotation/CborApplyAnnotation.java       |  4 +-
 .../apache/juneau/collections/MarshalledList.java  | 10 ++--
 .../apache/juneau/collections/MarshalledMap.java   | 20 ++++---
 .../juneau/csv/annotation/CsvApplyAnnotation.java  |  4 +-
 .../org/apache/juneau/encoders/EncoderSet.java     |  4 +-
 .../hjson/annotation/HjsonApplyAnnotation.java     |  4 +-
 .../hocon/annotation/HoconApplyAnnotation.java     |  4 +-
 .../apache/juneau/html/HtmlSerializerSession.java  | 34 +++---------
 .../html/annotation/HtmlApplyAnnotation.java       |  4 +-
 .../html/annotation/HtmlConfigAnnotation.java      |  4 +-
 .../html/annotation/HtmlDocConfigAnnotation.java   |  4 +-
 .../html/annotation/HtmlLinkApplyAnnotation.java   |  4 +-
 .../org/apache/juneau/httppart/HttpPartSchema.java |  8 +--
 .../juneau/ini/annotation/IniApplyAnnotation.java  |  4 +-
 .../apache/juneau/json/JsonSerializerSession.java  | 17 ++----
 .../json/annotation/JsonApplyAnnotation.java       |  4 +-
 .../json/annotation/JsonConfigAnnotation.java      |  8 ++-
 .../apache/juneau/json5/Json5ParserSession.java    |  5 +-
 .../jsonl/annotation/JsonlConfigAnnotation.java    |  8 ++-
 .../jsonschema/JsonSchemaGeneratorSession.java     |  2 +-
 .../markdown/MarkdownDocSerializerSession.java     |  2 +-
 .../juneau/markdown/MarkdownSerializerSession.java | 22 ++------
 .../annotation/MarkdownApplyAnnotation.java        |  4 +-
 .../annotation/MarkdownConfigAnnotation.java       |  8 ++-
 .../java/org/apache/juneau/marshaller/Parquet.java | 16 ++++--
 .../msgpack/annotation/MsgPackApplyAnnotation.java |  4 +-
 .../oapi/annotation/OpenApiApplyAnnotation.java    |  4 +-
 .../juneau/parquet/ParquetParserSession.java       |  8 ++-
 .../juneau/parquet/ParquetSerializerSession.java   |  4 +-
 .../parquet/annotation/ParquetApplyAnnotation.java |  4 +-
 .../org/apache/juneau/parser/ParserSession.java    | 34 +-----------
 .../java/org/apache/juneau/parser/ParserSet.java   | 15 ++++-
 .../parser/annotation/ParserConfigAnnotation.java  | 13 ++++-
 .../annotation/PlainTextApplyAnnotation.java       |  4 +-
 .../apache/juneau/proto/ProtoParserSession.java    |  3 +-
 .../proto/annotation/ProtoApplyAnnotation.java     |  4 +-
 .../juneau/serializer/SerializerSession.java       | 23 ++------
 .../apache/juneau/serializer/SerializerSet.java    | 15 ++++-
 .../annotation/SerializerConfigAnnotation.java     | 13 ++++-
 .../soap/annotation/SoapXmlApplyAnnotation.java    |  4 +-
 .../java/org/apache/juneau/sse/SseEventReader.java |  8 ++-
 .../org/apache/juneau/sse/SseParserSession.java    |  4 +-
 .../java/org/apache/juneau/sse/SseSerializer.java  |  4 +-
 .../apache/juneau/sse/SseSerializerSession.java    |  4 +-
 .../org/apache/juneau/uon/UonParserSession.java    | 20 +++++--
 .../juneau/uon/annotation/UonApplyAnnotation.java  |  4 +-
 .../juneau/uon/annotation/UonConfigAnnotation.java |  8 ++-
 .../urlencoding/UrlEncodingParserSession.java      | 12 +++-
 .../annotation/UrlEncodingApplyAnnotation.java     |  4 +-
 .../juneau/utils/MarshallingContextConverter.java  |  4 +-
 .../org/apache/juneau/xml/XmlParserSession.java    |  1 -
 .../juneau/xml/annotation/XmlApplyAnnotation.java  |  4 +-
 .../juneau/xml/annotation/XmlConfigAnnotation.java |  9 ++-
 .../org/apache/juneau/yaml/YamlParserSession.java  |  4 +-
 .../apache/juneau/examples/bean/BeanExample.java   |  4 +-
 .../juneau/examples/bean/atom/AtomJsonExample.java |  4 +-
 .../juneau/examples/bean/atom/AtomXmlExample.java  |  4 +-
 .../juneau/examples/core/oapi/OapiExample.java     |  4 +-
 .../juneau/examples/rest/HtmlBeansResource.java    |  4 +-
 .../juneau/examples/rest/UtilityBeansResource.java |  4 +-
 .../microservice/tomcat/TomcatServerComponent.java | 16 +++++-
 .../microservice/resources/DirectoryResource.java  |  2 +-
 .../microservice/resources/LogEntryFormatter.java  | 16 +++---
 .../microservice/resources/LogsResource.java       |  5 +-
 .../client/classic/remote/RemoteOperationArg.java  |  8 ++-
 .../juneau/rest/client/JavaHttpTransport.java      | 12 +++-
 .../rest/client/JavaHttpTransportBuilder.java      |  4 +-
 .../rest/client/JavaHttpTransportProvider.java     |  4 +-
 .../juneau/rest/client/remote/RemoteClient.java    |  4 +-
 .../http/classic/header/SerializedHeader.java      |  2 -
 .../juneau/http/annotation/TagAnnotation.java      |  2 +-
 .../juneau/http/response/BasicHttpException.java   |  6 +-
 .../httppart/bean/RequestBeanPropertyMeta.java     |  4 +-
 .../httppart/bean/ResponseBeanPropertyMeta.java    |  4 +-
 .../org/apache/juneau/rest/mcp/McpDispatcher.java  |  8 ++-
 .../org/apache/juneau/rest/mcp/McpEndpoint.java    |  4 +-
 .../org/apache/juneau/rest/mcp/McpRestServlet.java |  4 +-
 .../rest/auth/oauth/BoundedLruTokenCache.java      |  4 +-
 .../auth/oauth/OAuthIntrospectionValidator.java    | 16 +++---
 .../oauth/flow/OAuthAuthorizationCodeFlow.java     |  8 ++-
 .../auth/oauth/flow/OAuthResourceOwnerFlow.java    |  2 +-
 .../juneau/rest/auth/oauth/package-info.java       |  4 +-
 .../juneau/rest/auth/oidc/rp/EphemeralStore.java   |  2 +-
 .../juneau/rest/auth/oidc/rp/OidcRelyingParty.java |  4 +-
 .../auth/oidc/rp/SignedCookieSessionStore.java     |  4 +-
 .../juneau/rest/tracing/otel/OtelTracerHook.java   |  2 +-
 .../rest/reactive/ReactiveResponseProcessor.java   |  6 +-
 .../rest/auth/saml/SamlAssertionValidator.java     | 26 +++++----
 .../juneau/rest/auth/saml/SamlAuthFilter.java      |  4 +-
 .../rest/auth/saml/SamlMetadataResolvers.java      |  2 +-
 .../juneau/rest/springboot/SpringBeanStore.java    |  4 +-
 .../juneau/rest/springboot/SpringRestServlet.java  |  4 +-
 .../rest/view/freemarker/FreemarkerMixin.java      |  3 +-
 .../org/apache/juneau/rest/view/jsp/JspMixin.java  |  3 +-
 .../juneau/rest/view/mustache/MustacheMixin.java   |  3 +-
 .../juneau/rest/view/thymeleaf/ThymeleafMixin.java |  3 +-
 .../apache/juneau/rest/AbstractRestBuilder.java    |  2 +-
 .../java/org/apache/juneau/rest/RestContext.java   | 64 ++++++++++++----------
 .../java/org/apache/juneau/rest/RestOpContext.java | 34 ++++++------
 .../java/org/apache/juneau/rest/RestOpInvoker.java |  4 +-
 .../java/org/apache/juneau/rest/RestOpSession.java |  6 +-
 .../apache/juneau/rest/RestServerConstants.java    |  2 +-
 .../java/org/apache/juneau/rest/RestSession.java   |  6 +-
 .../org/apache/juneau/rest/annotation/Rest.java    |  4 +-
 .../rest/annotation/RestDeleteAnnotation.java      |  5 --
 .../juneau/rest/annotation/RestGetAnnotation.java  |  7 ---
 .../apache/juneau/rest/annotation/RestInit.java    |  2 +-
 .../org/apache/juneau/rest/annotation/RestOp.java  |  2 +-
 .../juneau/rest/annotation/RestOpAnnotation.java   |  6 --
 .../rest/annotation/RestOptionsAnnotation.java     |  6 --
 .../rest/annotation/RestPatchAnnotation.java       |  6 --
 .../juneau/rest/annotation/RestPostAnnotation.java |  6 --
 .../juneau/rest/annotation/RestPutAnnotation.java  |  6 --
 .../org/apache/juneau/rest/arg/FormDataArg.java    |  4 +-
 .../java/org/apache/juneau/rest/arg/HeaderArg.java |  4 +-
 .../java/org/apache/juneau/rest/arg/PathArg.java   |  4 +-
 .../apache/juneau/rest/arg/PathRemainderArg.java   |  4 +-
 .../java/org/apache/juneau/rest/arg/QueryArg.java  |  4 +-
 .../apache/juneau/rest/arg/ResponseHeaderArg.java  |  4 +-
 .../org/apache/juneau/rest/auth/AuthFilter.java    |  4 +-
 .../apache/juneau/rest/auth/AuthFilterChain.java   |  4 +-
 .../apache/juneau/rest/auth/ClaimsPrincipal.java   |  4 +-
 .../juneau/rest/auth/ClaimsRoleExtractor.java      |  4 +-
 .../juneau/rest/convention/FaviconMixin.java       |  6 +-
 .../juneau/rest/convention/FaviconProvider.java    |  2 +-
 .../apache/juneau/rest/convention/SeoMixin.java    |  4 +-
 .../juneau/rest/convention/VersionMixin.java       | 11 ++--
 .../juneau/rest/convention/VersionProvider.java    |  2 +-
 .../juneau/rest/convention/WellKnownMixin.java     |  4 +-
 .../org/apache/juneau/rest/debug/DebugConfig.java  |  5 +-
 .../org/apache/juneau/rest/docs/OpenApiMixin.java  |  3 +-
 .../org/apache/juneau/rest/docs/RedocMixin.java    |  3 +-
 .../org/apache/juneau/rest/docs/SwaggerMixin.java  |  3 +-
 .../apache/juneau/rest/docs/SwaggerUiMixin.java    |  5 +-
 .../juneau/rest/health/HealthAggregator.java       |  8 ++-
 .../apache/juneau/rest/logger/CallLoggerRule.java  |  4 +-
 .../org/apache/juneau/rest/ops/AdminMixin.java     |  5 +-
 .../org/apache/juneau/rest/ops/AdminProvider.java  |  2 +-
 .../java/org/apache/juneau/rest/ops/EchoMixin.java |  5 +-
 .../apache/juneau/rest/ops/RouteIndexMixin.java    | 17 ++++--
 .../org/apache/juneau/rest/ops/StatsMixin.java     |  6 +-
 .../rest/processor/AsyncResponseProcessor.java     |  8 +--
 .../juneau/rest/processor/MdcAsyncListener.java    | 12 +++-
 .../rest/processor/ProblemDetailsProcessor.java    | 13 ++++-
 .../rest/processor/ResponseProcessorList.java      |  4 +-
 .../org/apache/juneau/rest/servlet/RestMixin.java  |  8 +--
 .../apache/juneau/rest/servlet/RestResource.java   |  6 +-
 .../apache/juneau/rest/servlet/RestServlet.java    |  6 +-
 .../apache/juneau/rest/sse/SseResponseSupport.java |  4 +-
 .../juneau/rest/staticfile/StaticFilesMixin.java   |  5 +-
 .../apache/juneau/rest/stats/MethodExecStats.java  |  4 +-
 .../apache/juneau/rest/stats/MethodExecStore.java  |  4 +-
 .../org/apache/juneau/rest/stats/ThrownStore.java  |  4 +-
 .../apache/juneau/rest/tracing/NoOpTracerHook.java |  4 +-
 .../tracing/TraceContextResponseProcessor.java     |  4 +-
 .../juneau/rest/validation/BeanValidator.java      |  4 +-
 .../juneau/transforms/BooleanFormat_Test.java      |  7 ++-
 233 files changed, 982 insertions(+), 652 deletions(-)

diff --git a/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/McpMethods.java b/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/McpMethods.java
index 0cd97f3a69..109622d9da 100644
--- a/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/McpMethods.java
+++ b/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/McpMethods.java
@@ -19,7 +19,9 @@ package org.apache.juneau.bean.mcp;
 /**
  * JSON-RPC method names used by MCP over HTTP.
  */
-@SuppressWarnings("java:S115")
+@SuppressWarnings({
+	"java:S115" // Constant names mirror MCP protocol field names exactly (e.g., TOOLS_LIST = "tools/list").
+})
 public final class McpMethods {
 
 	private McpMethods() {}
diff --git a/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/McpProtocol.java b/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/McpProtocol.java
index eecb66150e..1bdda27742 100644
--- a/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/McpProtocol.java
+++ b/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/McpProtocol.java
@@ -19,7 +19,9 @@ package org.apache.juneau.bean.mcp;
 /**
  * MCP protocol version strings carried in {@code initialize} requests and results.
  */
-@SuppressWarnings("java:S115")
+@SuppressWarnings({
+	"java:S115" // Constant names encode protocol version dates verbatim (e.g., VERSION_2025_06_18).
+})
 public final class McpProtocol {
 
 	private McpProtocol() {}
diff --git a/juneau-bean/juneau-bean-swagger-v2/src/main/java/org/apache/juneau/bean/swagger/Swagger.java b/juneau-bean/juneau-bean-swagger-v2/src/main/java/org/apache/juneau/bean/swagger/Swagger.java
index a5e08ee246..9b82ad5f8e 100644
--- a/juneau-bean/juneau-bean-swagger-v2/src/main/java/org/apache/juneau/bean/swagger/Swagger.java
+++ b/juneau-bean/juneau-bean-swagger-v2/src/main/java/org/apache/juneau/bean/swagger/Swagger.java
@@ -170,7 +170,6 @@ public class Swagger extends SwaggerElement {
 		this.schemes.addAll(copyOf(copyFrom.schemes));
 		this.swagger = copyFrom.swagger;
 
-		// TODO - Definitions are not deep copied, so they should not contain references.
 		definitions.putAll(copyOf(copyFrom.definitions, JsonMap::new));
 
 		copyFrom.paths.forEach((k, v) -> {
diff --git a/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/Listifiers.java b/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/Listifiers.java
index 34b1bb45c5..8eab9fdf69 100644
--- a/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/Listifiers.java
+++ b/juneau-core/juneau-bct/src/main/java/org/apache/juneau/junit/bct/Listifiers.java
@@ -141,7 +141,6 @@ public class Listifiers {
 	public static Listifier<Collection> collectionListifier() {
 		return (bc, collection) -> {
 			if (collection instanceof Set && ! (collection instanceof SortedSet) && ! (collection instanceof LinkedHashSet) && BctConfiguration.get(BCT_SORT_COLLECTIONS, false)) {
-				// TODO - This is too unreliable.
 				var collection2 = new TreeSet<>(flexibleComparator(bc));
 				collection2.addAll(collection);
 				collection = collection2;
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanInfo.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanInfo.java
index d3c144a3d4..c91a4ffb7b 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanInfo.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanInfo.java
@@ -83,7 +83,9 @@ public abstract class BeanInfo<T> extends ClassInfoTyped<T> {
 	 *
 	 * @return The element type info, or <jk>null</jk>.
 	 */
-	@SuppressWarnings("java:S1452") // Element type is heterogeneous; wildcard is fundamental to the SPI contract.
+	@SuppressWarnings({
+		"java:S1452" // Element type is heterogeneous; wildcard is fundamental to the SPI contract.
+	})
 	public abstract BeanInfo<?> getElementType();
 
 	/**
@@ -91,7 +93,9 @@ public abstract class BeanInfo<T> extends ClassInfoTyped<T> {
 	 *
 	 * @return The key type info, or <jk>null</jk>.
 	 */
-	@SuppressWarnings("java:S1452") // Key type is heterogeneous; wildcard is fundamental to the SPI contract.
+	@SuppressWarnings({
+		"java:S1452" // Key type is heterogeneous; wildcard is fundamental to the SPI contract.
+	})
 	public abstract BeanInfo<?> getKeyType();
 
 	/**
@@ -99,7 +103,9 @@ public abstract class BeanInfo<T> extends ClassInfoTyped<T> {
 	 *
 	 * @return The value type info, or <jk>null</jk>.
 	 */
-	@SuppressWarnings("java:S1452") // Value type is heterogeneous; wildcard is fundamental to the SPI contract.
+	@SuppressWarnings({
+		"java:S1452" // Value type is heterogeneous; wildcard is fundamental to the SPI contract.
+	})
 	public abstract BeanInfo<?> getValueType();
 
 	/**
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanMap.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanMap.java
index 6249f4104b..c70775664b 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanMap.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanMap.java
@@ -84,7 +84,9 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T
 	 * @param bean The bean being wrapped.
 	 * @return A new {@link BeanMap} instance wrapping the bean.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: map parameterization is verified at construction.
+	})
 	public static <T> BeanMap<T> of(T bean) {
 		return new BeanMap<>(bean, BeanMeta.of((Class<T>) bean.getClass()));
 	}
@@ -279,7 +281,9 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T
 	 * @param action The action to perform.
 	 * @return The list of all bean property values.
 	 */
-	@SuppressWarnings("java:S3776") // Cognitive complexity acceptable for bean property filtering with predicate
+	@SuppressWarnings({
+		"java:S3776" // Cognitive complexity acceptable for bean property filtering with predicate
+	})
 	public BeanMap<T> forEachValue(Predicate<Object> valueFilter, BeanPropertyConsumer action) {
 
 		// Normal bean.
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanMeta.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanMeta.java
index fa6e14e535..82b029eb52 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanMeta.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanMeta.java
@@ -320,7 +320,10 @@ public class BeanMeta<T> {
 	private final ClassInfo classInfo;                                         // Pure-reflection view of the bean class that decouples bean modeling from ClassMeta.  Always non-null.
 	private final Supplier<String> dictionaryName;                             // The @Marshalled(typeName) annotation defined on this bean class.
 	private final BeanPropertyMeta dynaProperty;                               // "extras" property.
-	@SuppressWarnings("rawtypes") private final Class<? extends BeanFactory> factoryClass;  // @BeanType(factory=X.class) — null means no factory.
+	@SuppressWarnings({
+		"rawtypes" // Raw type required at this call site; generic type is verified at runtime
+	})
+	private final Class<? extends BeanFactory> factoryClass;  // @BeanType(factory=X.class) — null means no factory.
 	private final boolean fluentSetters;                                       // Whether fluent setters are enabled.
 	private final Map<Method,String> getterProps;                              // The getter properties on the target class.
 	private final Map<String,BeanPropertyMeta> hiddenProperties;               // The hidden properties on the target class.
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanPropAnnotation.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanPropAnnotation.java
index aed93c4c67..99a8e04285 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanPropAnnotation.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanPropAnnotation.java
@@ -29,7 +29,7 @@ import org.apache.juneau.commons.function.*;
  * programmatically without requiring it to be declared on a program element at compile time.
  *
  * <p>
- * Phase 2 of the bean-layer split keeps this builder pure-data: it captures the annotation attribute
+ * This builder is pure-data: it captures the annotation attribute
  * values and produces an annotation instance that is functionally equivalent to a declared one, but
  * does <i>not</i> apply itself to a marshalling context. The application logic remains in
  * <c>juneau-marshall</c> (see {@code MarshalledPropAnnotation} and {@code BeanPropApplyAnnotation})
@@ -40,6 +40,9 @@ import org.apache.juneau.commons.function.*;
  * 	<li class='jc'>{@link AnnotationObject}
  * </ul>
  */
+@SuppressWarnings({
+	"rawtypes" // Raw types required for reflective annotation application.
+})
 public class BeanPropAnnotation {
 
 	/**
@@ -56,7 +59,6 @@ public class BeanPropAnnotation {
 		private Class<?> type = void.class;
 		private Class<?> elementType = void.class;
 		private Class<?>[] params = new Class[0];
-		@SuppressWarnings("rawtypes")
 		private Class<? extends BeanFactory> factory = BeanFactory.Void.class;
 		private String name = "";
 		private String ro = "";
@@ -108,7 +110,6 @@ public class BeanPropAnnotation {
 		 * @param value The new value for this property.
 		 * @return This object.
 		 */
-		@SuppressWarnings("rawtypes")
 		public Builder factory(Class<? extends BeanFactory> value) {
 			factory = value;
 			return this;
@@ -204,7 +205,6 @@ public class BeanPropAnnotation {
 		private final Class<?> type;
 		private final Class<?> elementType;
 		private final Class<?>[] params;
-		@SuppressWarnings("rawtypes")
 		private final Class<? extends BeanFactory> factory;
 		private final String name;
 		private final String value;
@@ -237,7 +237,6 @@ public class BeanPropAnnotation {
 		}
 
 		@Override /* Overridden from BeanProp */
-		@SuppressWarnings("rawtypes")
 		public Class<? extends BeanFactory> factory() {
 			return factory;
 		}
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanProxyInvocationHandler.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanProxyInvocationHandler.java
index e90b2bedbc..58e3c05be4 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanProxyInvocationHandler.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanProxyInvocationHandler.java
@@ -136,7 +136,9 @@ public class BeanProxyInvocationHandler<T> implements InvocationHandler {
 					return beanProps.equals(ih2.beanProps);
 				}
 			}
-			@SuppressWarnings("unchecked")
+			@SuppressWarnings({
+				"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+			})
 			var argMeta = (BeanMeta<Object>) BeanMeta.of(arg.getClass(), meta.getConfig());
 			return eq(beanProps, BeanMap.of(arg, argMeta));
 		}
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanTypeAnnotation.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanTypeAnnotation.java
index 9999aa8f11..80928ad179 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanTypeAnnotation.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/bean/BeanTypeAnnotation.java
@@ -29,7 +29,7 @@ import org.apache.juneau.commons.function.*;
  * programmatically without requiring it to be declared on a program element at compile time.
  *
  * <p>
- * Phase 1 of the bean-layer split keeps this builder pure-data: it captures the annotation attribute
+ * This builder is pure-data: it captures the annotation attribute
  * values and produces an annotation instance that is functionally equivalent to a declared one, but
  * does <i>not</i> apply itself to a marshalling context. The application logic remains in
  * <c>juneau-marshall</c> (see {@code MarshalledAnnotation}) until later phases move that machinery
@@ -40,6 +40,9 @@ import org.apache.juneau.commons.function.*;
  * 	<li class='jc'>{@link AnnotationObject}
  * </ul>
  */
+@SuppressWarnings({
+	"rawtypes" // Raw types required for reflective annotation application.
+})
 public class BeanTypeAnnotation {
 
 	/**
@@ -56,7 +59,6 @@ public class BeanTypeAnnotation {
 		private Class<?> interfaceClass = void.class;
 		private Class<?> stopClass = void.class;
 		private Class<? extends PropertyNamer> propertyNamer = PropertyNamer.Void.class;
-		@SuppressWarnings("rawtypes")
 		private Class<? extends BeanFactory> factory = BeanFactory.Void.class;
 		private String excludeProperties = "";
 		private String p = "";
@@ -113,7 +115,6 @@ public class BeanTypeAnnotation {
 		 * @param value The new value for this property.
 		 * @return This object.
 		 */
-		@SuppressWarnings("rawtypes")
 		public Builder factory(Class<? extends BeanFactory> value) {
 			factory = value;
 			return this;
@@ -264,7 +265,6 @@ public class BeanTypeAnnotation {
 		private final Class<? extends PropertyNamer> propertyNamer;
 		private final Class<?> interfaceClass;
 		private final Class<?> stopClass;
-		@SuppressWarnings("rawtypes")
 		private final Class<? extends BeanFactory> factory;
 		private final String excludeProperties;
 		private final String p;
@@ -305,7 +305,6 @@ public class BeanTypeAnnotation {
 		}
 
 		@Override /* Overridden from BeanType */
-		@SuppressWarnings("rawtypes")
 		public Class<? extends BeanFactory> factory() {
 			return factory;
 		}
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Lists.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Lists.java
index 560f6403c5..f0a2c9ffd8 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Lists.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Lists.java
@@ -297,7 +297,7 @@ public class Lists<E> {
 	 * @return The built list, or {@code null} if {@link #sparse()} is set and the list is empty.
 	 */
 	@SuppressWarnings({
-		"java:S1168"     // TODO: Intentional null when sparse+empty. Consider Optional.
+		"java:S1168"     // Intentional null when sparse+empty. TODO - Check current usages and see if empty makes sense.
 	})
 	public List<E> build() {
 		if (sparse && e(list))
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Maps.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Maps.java
index 639011dcbe..1dc4fb3392 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Maps.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Maps.java
@@ -314,7 +314,7 @@ public class Maps<K,V> {
 	 * @return The built map, or {@code null} if {@link #sparse()} is set and the map is empty.
 	 */
 	@SuppressWarnings({
-		"java:S1168",    // TODO: Intentional null when sparse+empty. Consider Optional.
+		"java:S1168",    // Intentional null when sparse+empty. TODO - Evaluate usages and determine if empty maps should be returned.
 		"java:S3776"     // Cognitive complexity acceptable for map builder
 	})
 	public Map<K,V> build() {
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Sets.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Sets.java
index 7f5d58ba80..51ce1fa373 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Sets.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Sets.java
@@ -314,7 +314,7 @@ public class Sets<E> {
 	 * @return The built set, or {@code null} if {@link #sparse()} is set and the set is empty.
 	 */
 	@SuppressWarnings({
-		"java:S1168"     // TODO: Intentional null when sparse+empty. Consider Optional.
+		"java:S1168"     // Intentional null when sparse+empty. TODO - Determine usages and whether empty sets should be returned.
 	})
 	public Set<E> build() {
 		if (sparse && e(set))
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/concurrent/SimpleLock.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/concurrent/SimpleLock.java
index d5e784667d..aeff2b8f95 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/concurrent/SimpleLock.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/concurrent/SimpleLock.java
@@ -100,7 +100,9 @@ public class SimpleLock implements AutoCloseable {
 	 * 	<li class='note'>This instance wraps a <jk>null</jk> lock, so no actual locking occurs.
 	 * </ul>
 	 */
-	@SuppressWarnings("resource") // Intentional singleton; wraps a null lock so close() is a no-op
+	@SuppressWarnings({
+		"resource" // Intentional singleton; wraps a null lock so close() is a no-op
+	})
 	public static final SimpleLock NO_OP = new SimpleLock(null);
 
 	private final Lock lock;
@@ -134,9 +136,19 @@ public class SimpleLock implements AutoCloseable {
 	 * @param lock The {@link Lock} being wrapped. Can be <jk>null</jk> to create a no-op lock.
 	 */
 	public SimpleLock(Lock lock) {
-		this.lock = lock;
-		if (nn(lock))
+		if (nn(lock)) {
+			boolean acquired = false;
 			lock.lock();
+			try {
+				this.lock = lock;
+				acquired = true;
+			} finally {
+				if (!acquired)
+					lock.unlock();
+			}
+		} else {
+			this.lock = null;
+		}
 	}
 
 	/**
@@ -169,12 +181,7 @@ public class SimpleLock implements AutoCloseable {
 	 */
 	@Override
 	public void close() {
-		if (nn(lock)) {
-			try {
-				// Lock release in finally ensures unlock on all execution paths
-			} finally {
-				lock.unlock();
-			}
-		}
+		if (nn(lock))
+			lock.unlock();
 	}
 }
\ No newline at end of file
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/conversion/CachingConverter.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/conversion/CachingConverter.java
index 771f639c4a..2f8403a8b9 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/conversion/CachingConverter.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/conversion/CachingConverter.java
@@ -74,7 +74,9 @@ public abstract class CachingConverter implements Converter {
 	 * @param <T> The target type.
 	 * @return The appropriate null default.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type parameter is verified at construction.
+	})
 	static <T> T nullDefault(Class<T> type, Class<?>... args) {
 		if (type == Optional.class) {
 			if (args.length > 0)
@@ -95,7 +97,9 @@ public abstract class CachingConverter implements Converter {
 	 * @param <T> The target type.
 	 * @return The JVM zero/false default, or <jk>null</jk> if {@code type} is not a primitive.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type parameter is verified at construction.
+	})
 	static <T> T primitiveDefault(Class<T> type) {
 		if (type == Integer.TYPE)   return (T) Integer.valueOf(0);
 		if (type == Long.TYPE)      return (T) Long.valueOf(0L);
@@ -133,7 +137,9 @@ public abstract class CachingConverter implements Converter {
 	 */
 	protected abstract <I, O> Conversion<I, O> findConversion(Class<I> inType, Class<O> outType);
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type parameter is verified at construction.
+	})
 	private <I, O> Conversion<I, O> lookupConversion(Class<I> inType, Class<O> outType) {
 		var fn = conversions
 			.computeIfAbsent(inType, k -> new ConcurrentHashMap<>())
@@ -166,7 +172,9 @@ public abstract class CachingConverter implements Converter {
 	 * @throws InvalidConversionException If no conversion path exists from the input type to the target type.
 	 */
 	@Override
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type parameter is verified at construction.
+	})
 	public <T> T to(Object o, Class<T> type) {
 		if (o == null)
 			return type.isPrimitive() ? primitiveDefault(type) : null;
@@ -200,7 +208,9 @@ public abstract class CachingConverter implements Converter {
 	 * @throws InvalidConversionException If no conversion path exists from the input type to the target type.
 	 */
 	@Override
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type parameter is verified at construction.
+	})
 	public <T> T to(Object o, Type mainType, Type... args) {
 		var rawType = (Class<T>) (mainType instanceof ParameterizedType pt ? pt.getRawType() : (Class<?>) mainType);
 		var argClasses = Stream.of(args)
@@ -232,7 +242,9 @@ public abstract class CachingConverter implements Converter {
 	 * @throws InvalidConversionException If no conversion path exists from the input type to the target type.
 	 */
 	@Override
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type parameter is verified at construction.
+	})
 	public <T> T to(Object o, Object memberOf, ConverterSession session, Class<T> type) {
 		if (o == null)
 			return nullDefault(type);
@@ -262,7 +274,9 @@ public abstract class CachingConverter implements Converter {
 	 * @throws InvalidConversionException If no conversion path exists from the input type to the target type.
 	 */
 	@Override
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type parameter is verified at construction.
+	})
 	public <T> T to(Object o, Object memberOf, ConverterSession session, Type mainType, Type... args) {
 		var rawType = (Class<T>) (mainType instanceof ParameterizedType pt ? pt.getRawType() : (Class<?>) mainType);
 		var argClasses = Stream.of(args)
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BasicBeanStore.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BasicBeanStore.java
index 2c833598c7..6ff46602fd 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BasicBeanStore.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BasicBeanStore.java
@@ -82,7 +82,9 @@ public class BasicBeanStore implements WritableBeanStore {
 	 * call any mutating methods on it &mdash; doing so would leak state between unrelated callers.
 	 * Code that legitimately needs to add beans should construct its own {@code new BasicBeanStore()}.
 	 */
-	@SuppressWarnings("resource") // intentional process-lifetime sentinel; never closed because it has no state to release
+	@SuppressWarnings({
+		"resource" // intentional process-lifetime sentinel; never closed because it has no state to release
+	})
 	public static final BasicBeanStore INSTANCE = new BasicBeanStore();
 
 	// Property name constants
@@ -150,7 +152,9 @@ public class BasicBeanStore implements WritableBeanStore {
 	 * @param parent The parent bean store, used as a fallback after local entries.  Can be <jk>null</jk>.
 	 * @param overridingParent The overriding parent bean store, consulted before local entries.  Can be <jk>null</jk>.
 	 */
-	@SuppressWarnings("resource") // self-registration via addSupplier returns this; no foreign resource is being captured
+	@SuppressWarnings({
+		"resource" // self-registration via addSupplier returns this; no foreign resource is being captured
+	})
 	public BasicBeanStore(BeanStore parent, BeanStore overridingParent) {
 		this.parent = parent;
 		this.overridingParent = overridingParent;
@@ -191,7 +195,9 @@ public class BasicBeanStore implements WritableBeanStore {
 	 * @return The bean.
 	 */
 	@Override
-	@SuppressWarnings("resource") // addBean returns this; the discarded return is the store we already own
+	@SuppressWarnings({
+		"resource" // addBean returns this; the discarded return is the store we already own
+	})
 	public <T> T add(Class<T> beanType, T bean, String name) {
 		addBean(beanType, bean, name);
 		return bean;
@@ -206,7 +212,9 @@ public class BasicBeanStore implements WritableBeanStore {
 	 * @return This object.
 	 */
 	@Override
-	@SuppressWarnings("resource") // fluent self-return; receiver already owns the store, no new resource is handed out
+	@SuppressWarnings({
+		"resource" // fluent self-return; receiver already owns the store, no new resource is handed out
+	})
 	public <T> BasicBeanStore addBean(Class<T> beanType, T bean) {
 		return addBean(beanType, bean, null);
 	}
@@ -221,7 +229,9 @@ public class BasicBeanStore implements WritableBeanStore {
 	 * @return This object.
 	 */
 	@Override
-	@SuppressWarnings("resource") // fluent self-return; receiver already owns the store, no new resource is handed out
+	@SuppressWarnings({
+		"resource" // fluent self-return; receiver already owns the store, no new resource is handed out
+	})
 	public <T> BasicBeanStore addBean(Class<T> beanType, T bean, String name) {
 		return addSupplier(beanType, () -> bean, name);
 	}
@@ -238,7 +248,9 @@ public class BasicBeanStore implements WritableBeanStore {
 	 * @return This object.
 	 */
 	@Override
-	@SuppressWarnings("resource") // fluent self-return; receiver already owns the store, no new resource is handed out
+	@SuppressWarnings({
+		"resource" // fluent self-return; receiver already owns the store, no new resource is handed out
+	})
 	public <T> BasicBeanStore addSupplier(Class<T> beanType, Supplier<T> bean) {
 		return addSupplier(beanType, bean, null);
 	}
@@ -280,7 +292,9 @@ public class BasicBeanStore implements WritableBeanStore {
 	 * @return This object.
 	 */
 	@Override
-	@SuppressWarnings("resource") // fluent self-return; receiver already owns the store, no new resource is handed out
+	@SuppressWarnings({
+		"resource" // fluent self-return; receiver already owns the store, no new resource is handed out
+	})
 	public <T> BasicBeanStore addDefaultSupplier(Class<T> beanType, Supplier<T> supplier) {
 		return addDefaultSupplier(beanType, supplier, null);
 	}
@@ -531,7 +545,9 @@ public class BasicBeanStore implements WritableBeanStore {
 	 * @param name The bean name.  Can be <jk>null</jk> for unnamed beans.
 	 * @return The locally-registered default supplier, or {@link Optional#empty()} if not present.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: parameterization is verified at construction.
+	})
 	public <T> Optional<Supplier<T>> getDefaultSupplier(Class<T> beanType, String name) {
 		var typeMap = defaults.get(beanType);
 		if (typeMap == null)
@@ -577,7 +593,9 @@ public class BasicBeanStore implements WritableBeanStore {
 	}
 
 	@Override
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: parameterization is verified at construction.
+	})
 	public <T> Optional<Class<? extends T>> getBeanType(Class<T> beanType) {
 		var v = (Class<? extends T>) typeBindings.get(beanType);
 		if (nn(v))
@@ -783,7 +801,9 @@ public class BasicBeanStore implements WritableBeanStore {
 			throw errors;
 	}
 
-	@SuppressWarnings("unchecked") // reflective @Bean discovery — element types resolve at runtime to the value's actual class
+	@SuppressWarnings({
+		"unchecked" // reflective @Bean discovery — element types resolve at runtime to the value's actual class
+	})
 	private void registerConfiguration(Class<?> configType, Set<Class<?>> visited) {
 		if (!visited.add(configType))
 			return;
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
index 6dc0641063..be295ea5ff 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/BeanInstantiator.java
@@ -471,7 +471,9 @@ public class BeanInstantiator<T> {
 	public static class Builder<T> {
 
 	final BeanStore parentStore;
-	@SuppressWarnings("resource") // transient build-time scratch store; lifetime is bounded by the Builder itself, no foreign resources are captured
+	@SuppressWarnings({
+		"resource" // transient build-time scratch store; lifetime is bounded by the Builder itself, no foreign resources are captured
+	})
 	final BasicBeanStore store;
 	final ClassInfoTyped<T> beanType;
 	final NullableReference<List<String>> debug = NullableReference.empty();
@@ -713,7 +715,9 @@ public class BeanInstantiator<T> {
 	 * @return This object.
 	 * @throws IllegalArgumentException If {@code value} is <jk>null</jk> or its underlying class is not a subclass of {@code beanType}.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Reflective builder lookup returns Object; cast is safe by construction.
+	})
 	public Builder<T> type(ClassInfo value) {
 		assertArgNotNull(ARG_value, value);
 		return type((Class<? extends T>) value.inner());
@@ -1690,7 +1694,7 @@ public class BeanInstantiator<T> {
 		if (builder2 != null) {
 			log("Builder detected: %s", builder2.getClass().getName());
 
-			// Phase 6 hooks: builder initializers, then optional inject, then optional auto-wire.
+			// Initialization hooks: builder initializers, then optional inject, then optional auto-wire.
 			for (var init : builderInitializers)
 				init.accept(builder2);
 			if (injectBuilder) {
@@ -2138,7 +2142,7 @@ public class BeanInstantiator<T> {
 			.map(MethodInfo::getReturnType)
 			.toList();
 		if (! staticBuilderTypes.isEmpty()) {
-			// TODO-143 (Option D): prefer a factory whose builder builds the EXACT requested type (or a
+			// Prefer a factory whose builder builds the EXACT requested type (or a
 			// subtype) over one that only promises a supertype — e.g. an inherited generic builder(Class)
 			// whose build() erases to a base class. A supertype-only factory must not displace a stricter path.
 			var strict = staticBuilderTypes.stream().filter(this::isStrictBuilderType).findFirst();
@@ -2212,7 +2216,7 @@ public class BeanInstantiator<T> {
 	 * as opposed to only promising a supertype.
 	 *
 	 * <p>
-	 * Used by {@link #findBuilderType()} (TODO-143 Option D) to prefer a precise builder over an inherited
+	 * Used by {@link #findBuilderType()} to prefer a precise builder over an inherited
 	 * generic base builder whose {@code build()} erases to a parent class (e.g. a self-typed REST
 	 * {@code DefaultBuilder} whose {@code build()} returns {@code RestMixin}).
 	 *
@@ -2229,7 +2233,7 @@ public class BeanInstantiator<T> {
 	}
 
 	/**
-	 * TODO-143 Option D gate: a builder candidate that only builds a <i>supertype</i> of the requested bean
+	 * A builder candidate that only builds a <i>supertype</i> of the requested bean
 	 * type must not be used when the requested type is concretely instantiable via a direct constructor.
 	 *
 	 * <p>
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/Snapshot.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/Snapshot.java
index ff145a340e..91e919ff80 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/Snapshot.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/Snapshot.java
@@ -50,7 +50,9 @@ package org.apache.juneau.commons.inject;
  *
  * @since 9.5.0
  */
-@SuppressWarnings("resource")  // owner and frame are not owned by Snapshot; their lifecycle is managed externally.
+@SuppressWarnings({
+	"resource" // owner and frame are not owned by Snapshot; their lifecycle is managed externally.
+})
 public final class Snapshot {
 
 	private final WritableBeanStore owner;
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/ValueResolver.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/ValueResolver.java
index b9afa41d39..9fd644d70f 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/ValueResolver.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/ValueResolver.java
@@ -45,7 +45,7 @@ import org.apache.juneau.commons.svl.*;
  * <p>
  * The resolver intentionally uses {@link VarResolver#DEFAULT}, which already includes
  * {@code PropertyVar} (the {@code $P{key[,default]}} variable that reads from {@link Settings}).
- * With Phase 2 of TODO-79 landed, the {@code ${key}} shortcut routes through that same {@code PropertyVar},
+ * After the property-variable unification, the {@code ${key}} shortcut routes through that same {@code PropertyVar},
  * so {@code @Value("${db.url}")} and {@code @Value("$P{db.url}")} are equivalent.
  */
 public final class ValueResolver {
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/WritableBeanStore.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/WritableBeanStore.java
index 168d27b955..982b4950ee 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/WritableBeanStore.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/inject/WritableBeanStore.java
@@ -59,7 +59,9 @@ public interface WritableBeanStore extends BeanStore, AutoCloseable {
 	 * @param bean The bean instance.  Can be <jk>null</jk>.
 	 * @return The bean.
 	 */
-	@SuppressWarnings("resource") // addBean returns this; the discarded return is the store the caller already holds
+	@SuppressWarnings({
+		"resource" // addBean returns this; the discarded return is the store the caller already holds
+	})
 	default <T> T add(Class<T> beanType, T bean) {
 		addBean(beanType, bean);
 		return bean;
@@ -74,7 +76,9 @@ public interface WritableBeanStore extends BeanStore, AutoCloseable {
 	 * @param name The bean name.  Can be <jk>null</jk> for unnamed beans.
 	 * @return The bean.
 	 */
-	@SuppressWarnings("resource") // addBean returns this; the discarded return is the store the caller already holds
+	@SuppressWarnings({
+		"resource" // addBean returns this; the discarded return is the store the caller already holds
+	})
 	default <T> T add(Class<T> beanType, T bean, String name) {
 		addBean(beanType, bean, name);
 		return bean;
@@ -229,7 +233,9 @@ public interface WritableBeanStore extends BeanStore, AutoCloseable {
 	 * @param configTypes The configuration types.
 	 * @return This object.
 	 */
-	@SuppressWarnings("resource") // registerConfiguration returns this; the discarded return is the store the caller already holds
+	@SuppressWarnings({
+		"resource" // registerConfiguration returns this; the discarded return is the store the caller already holds
+	})
 	default WritableBeanStore registerConfigurations(Class<?>... configTypes) {
 		if (configTypes != null)
 			for (var c : configTypes)
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseOutputStream.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseOutputStream.java
index fe0d8251ca..4041d92921 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseOutputStream.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseOutputStream.java
@@ -79,7 +79,9 @@ public class NoCloseOutputStream extends OutputStream {
 	private static final String ARG_b = "b";
 	private static final String ARG_os = "os";
 
-	@SuppressWarnings("resource") // Intentionally not owned; this wrapper deliberately does not close the underlying stream
+	@SuppressWarnings({
+		"resource" // Intentionally not owned; this wrapper deliberately does not close the underlying stream
+	})
 	private final OutputStream os;
 
 	/**
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseWriter.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseWriter.java
index ce1bae5a0d..433a4ed641 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseWriter.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/NoCloseWriter.java
@@ -80,7 +80,9 @@ public class NoCloseWriter extends Writer {
 	private static final String ARG_str = "str";
 	private static final String ARG_w = "w";
 
-	@SuppressWarnings("resource") // Intentionally not owned; this wrapper deliberately does not close the underlying writer
+	@SuppressWarnings({
+		"resource" // Intentionally not owned; this wrapper deliberately does not close the underlying writer
+	})
 	private final Writer w;
 
 	/**
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/ReaderInputStream.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/ReaderInputStream.java
index bfa4aceec5..ca49243afd 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/ReaderInputStream.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/io/ReaderInputStream.java
@@ -84,7 +84,9 @@ public class ReaderInputStream extends InputStream {
 	private static final String ARG_encoder = "encoder";
 	private static final String ARG_reader = "reader";
 
-	@SuppressWarnings("resource") // Intentionally not owned; caller retains responsibility for closing the underlying Reader
+	@SuppressWarnings({
+		"resource" // Intentionally not owned; caller retains responsibility for closing the underlying Reader
+	})
 	private final Reader reader;
 	private final CharsetEncoder encoder;
 
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/AnnotationInfo.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/AnnotationInfo.java
index fdcb34f8a2..7f068cbead 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/AnnotationInfo.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/reflect/AnnotationInfo.java
@@ -122,7 +122,7 @@ public class AnnotationInfo<T extends Annotation> {
 	 * @param a The annotation instance.
 	 */
 	AnnotationInfo(Annotatable on, T a) {
-		this.annotatable = on;  // TODO - Shouldn't allow null.
+		this.annotatable = on;  // TODO - Shouldn't allow null.  Add an assertion and see if anything breaks.
 		this.a = assertArgNotNull(ARG_a, a);
 		this.rank = findRank(a);
 		this.toString = memoize(this::findToString);
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/settings/DotenvPropertySource.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/settings/DotenvPropertySource.java
index 32495dfe2b..cef69bc0b8 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/settings/DotenvPropertySource.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/settings/DotenvPropertySource.java
@@ -67,7 +67,9 @@ public class DotenvPropertySource implements PropertySource {
 		return value == null ? PropertyLookupResult.missing() : PropertyLookupResult.present(opt(value));
 	}
 
-	@SuppressWarnings("java:S3776") // line-oriented dotenv parsing intentionally keeps all validation branches in one place.
+	@SuppressWarnings({
+		"java:S3776" // line-oriented dotenv parsing intentionally keeps all validation branches in one place.
+	})
 	private static Map<String,String> load(Path path) {
 		if (path == null || ! Files.exists(path))
 			return Collections.emptyMap();
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/settings/Settings.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/settings/Settings.java
index 2336c08bbd..258af3522c 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/settings/Settings.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/settings/Settings.java
@@ -384,7 +384,7 @@ public class Settings {
 	 * <p>
 	 * Intended primarily for tests that need to verify nothing has leaked extra sources into the
 	 * process-wide {@link #get() Settings.get()} singleton &mdash; the historical failure mode
-	 * documented in {@code FINISHED-79-phase6-discovery-report.md} where a per-{@code RestContext}
+	 * documented where a per-{@code RestContext}
 	 * config bridge added a {@code ConfigPropertySource} per cached {@code RestContext} via
 	 * {@link #addSource(PropertySource)} and never removed it.
 	 *
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/ArgCoercer.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/ArgCoercer.java
index 71c92c0200..5dddf0d70a 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/ArgCoercer.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/ArgCoercer.java
@@ -116,8 +116,8 @@ final class ArgCoercer {
 	}
 
 	/**
-	 * Coerce a single raw argument to the requested type. Public-static so tests and Phase C
-	 * function impls can exercise the coercion table directly.
+	 * Coerce a single raw argument to the requested type. Public-static so tests
+	 * and function impls can exercise the coercion table directly.
 	 *
 	 * @param fnName Function name (for diagnostic messages).
 	 * @param argIndex Zero-based arg position (for diagnostic messages).
@@ -154,7 +154,7 @@ final class ArgCoercer {
 	}
 
 	/**
-	 * Parse the explicit truthiness table from OQA #7. Throws {@link IllegalArgumentException}
+	 * Parse the explicit truthiness table. Throws {@link IllegalArgumentException}
 	 * on inputs that don't match any TRUE or FALSE token.
 	 */
 	private static boolean parseBoolean(String fnName, int argIndex, String s) {
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/ScriptSegment.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/ScriptSegment.java
index 9e45daa814..a2419c7636 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/ScriptSegment.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/ScriptSegment.java
@@ -29,24 +29,12 @@ import java.util.*;
  * the parsed arguments — each is itself a {@link VarTemplate} so that nested {@code ${...}} and
  * {@code #{...}} resolve naturally per arg.
  *
- * <h5 class='section'>Phase B (this class as shipped here):</h5>
- * <ul>
- * 	<li>Tokenizer + parser produce {@link ScriptSegment} instances. The {@link #cachedFn} field
- * 		is always {@code null} until Phase C wires the function registry.
- * 	<li>{@link #resolve(VarResolverSession, StringBuilder) resolve} throws
- * 		{@link IllegalArgumentException} per OQA #4's lazy-fail contract: "{@code No such
- * 		function 'foo'}".
- * </ul>
- *
- * <h5 class='section'>Phase C (function dispatch):</h5>
- * <ul>
- * 	<li>The compiler caches a {@link VarFunction} reference into {@link #cachedFn} at compile time
- * 		using the four-channel discovery chain (built-in / ServiceLoader / BeanStore / explicit).
- * 	<li>{@link #resolve(VarResolverSession, StringBuilder) resolve} dispatches to
- * 		{@link VarFunction#invoke(VarResolverSession, List)} after resolving each
- * 		{@link #argTemplates arg template} and coercing it via {@code ArgCoercer} to the
- * 		function's declared parameter type.
- * </ul>
+ * <p>
+ * The {@link #cachedFn} field is set at compile time via the four-channel discovery chain
+ * (built-in / ServiceLoader / BeanStore / explicit). When null, the function name was
+ * unregistered at compile time; {@link #resolve(VarResolverSession, StringBuilder) resolve}
+ * then throws {@link IllegalArgumentException} with a lazy-fail message:
+ * "{@code No such function 'foo'}".
  *
  * <p>
  * If a function reference is unregistered at compile time, the compiler still produces a valid
@@ -57,8 +45,8 @@ import java.util.*;
 final class ScriptSegment extends TemplateSegment {
 
 	/**
-	 * The function reference cached at compile time. {@code null} in Phase B (always) and in
-	 * Phase C when the function name is unregistered (lazy-fail per OQA #4).
+	 * The function reference cached at compile time. {@code null} when the function name is
+	 * unregistered (lazy-fail: error surfaces at resolve time).
 	 */
 	final VarFunction cachedFn;
 
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/VarResolver.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/VarResolver.java
index 44caf956fd..5dcf65c14c 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/VarResolver.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/VarResolver.java
@@ -293,7 +293,9 @@ public class VarResolver {
 	);
 
 	@SafeVarargs
-	@SuppressWarnings({"unchecked"})
+	@SuppressWarnings({
+		"unchecked" // Array allocation with generic component type; safe since the concat result is immediately typed by the return.
+	})
 	private static <T> Class<? extends T>[] concat(Class<? extends T>[]... arrays) {
 		var total = 0;
 		for (var a : arrays) total += a.length;
@@ -347,7 +349,9 @@ public class VarResolver {
 
 	private static Var toVar(BeanStore bs, Object o) {
 		if (o instanceof Class<?> o2) {
-			@SuppressWarnings("unchecked")
+			@SuppressWarnings({
+				"unchecked" // Cast is safe: parameterized by caller.
+			})
 			var subType = (Class<? extends Var>) o2;
 			return BeanInstantiator.of(Var.class, bs).type(subType).run();
 		}
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/VarTemplate.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/VarTemplate.java
index 181f02ccaf..b6ecd54dd5 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/VarTemplate.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/VarTemplate.java
@@ -266,7 +266,7 @@ public final class VarTemplate {
 	}
 
 	/**
-	 * Package-private accessor for the compiled segments. Used by tests and by Phase 2's
+	 * Package-private accessor for the compiled segments. Used by tests and by the
 	 * stable-value folding pass.
 	 *
 	 * @return The compiled segments. The array is shared (not copied); callers must not mutate.
@@ -327,7 +327,9 @@ public final class VarTemplate {
 	 * @param out The writer to append to.
 	 * @return {@code out}.
 	 */
-	@SuppressWarnings("resource")  // 'out' and 'session' are caller-owned; this method must not close them.
+	@SuppressWarnings({
+		"resource" // 'out' and 'session' are caller-owned; this method must not close them.
+	})
 	public Writer resolveToUnchecked(VarResolverSession session, Writer out) {
 		try {
 			return resolveTo(session, out);
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/VarTemplateCompiler.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/VarTemplateCompiler.java
index bed3374fdf..7bebc66ccb 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/VarTemplateCompiler.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/VarTemplateCompiler.java
@@ -349,8 +349,8 @@ final class VarTemplateCompiler {
 		var args = p.parseArgList();
 		p.expect(')');
 		p.expectEnd();
-		// Phase C: bind the function at compile time. Unknown functions stay null and fail
-		// lazily at resolve time per OQA #4.
+		// Bind the function at compile time. Unknown functions stay null and fail
+		// lazily at resolve time.
 		var fn = resolver.getFunctionMap().get(name);
 		return new ScriptSegment(fn, name, args.toArray(new VarTemplate[0]));
 	}
@@ -375,7 +375,9 @@ final class VarTemplateCompiler {
 	 * <p>
 	 * Returns the folded literal text, or {@code null} if folding is skipped for any reason.
 	 */
-	@SuppressWarnings("java:S1166")  // Exception swallowed intentionally — fold-or-skip contract
+	@SuppressWarnings({
+		"java:S1166" // Exception swallowed intentionally — fold-or-skip contract.
+	})
 	private String tryFoldStableVar(Var v, VarTemplate body, boolean hasInternalVar) {
 		if (v == null || !v.isStable() || hasInternalVar || !(v instanceof SimpleVar))
 			return null;
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/ArithmeticFunctions.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/ArithmeticFunctions.java
index f22ef5778b..758df71af8 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/ArithmeticFunctions.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/ArithmeticFunctions.java
@@ -31,7 +31,9 @@ public final class ArithmeticFunctions {
 	private ArithmeticFunctions() {}
 
 	/** All function classes in this category. */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	public static final Class<? extends VarFunction>[] ALL = new Class[] {
 		Add.class, Subtract.class, Multiply.class, Divide.class, Modulo.class,
 		Min.class, Max.class, Abs.class
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/BooleanFunctions.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/BooleanFunctions.java
index 993e54ecfa..b8b74e0334 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/BooleanFunctions.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/BooleanFunctions.java
@@ -31,7 +31,9 @@ public final class BooleanFunctions {
 	private BooleanFunctions() {}
 
 	/** All function classes in this category. */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	public static final Class<? extends VarFunction>[] ALL = new Class[] {
 		And.class, Or.class, Not.class, Xor.class,
 		Eq.class, Neq.class, Lt.class, Lte.class, Gt.class, Gte.class
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/ConditionalFunctions.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/ConditionalFunctions.java
index 177d791b70..e87f4507a5 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/ConditionalFunctions.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/ConditionalFunctions.java
@@ -23,15 +23,16 @@ import org.apache.juneau.commons.svl.*;
  *
  * <p>
  * These four functions replaced the legacy {@code IfVar}, {@code SwitchVar}, {@code CoalesceVar},
- * and {@code NotEmptyVar} classes when the {@code #{...}} script syntax landed in 9.5.0. See
- * {@code FINISHED-102-svl-scripting.md} for the migration table.
+ * and {@code NotEmptyVar} classes when the {@code #{...}} script syntax landed in 9.5.0.
  */
 public final class ConditionalFunctions {
 
 	private ConditionalFunctions() {}
 
 	/** All function classes in this category. */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	public static final Class<? extends VarFunction>[] ALL = new Class[] {
 		If.class, Switch.class, Coalesce.class, NotEmpty.class
 	};
@@ -41,7 +42,7 @@ public final class ConditionalFunctions {
 	 *
 	 * <p>
 	 * Returns {@code then} if {@code cond} is truthy, {@code else} otherwise. Truthiness rules
-	 * match {@link ArgCoercer}'s boolean coercion table (per OQA #8: explicit table, no
+	 * match {@link ArgCoercer}'s boolean coercion table (explicit table, no
 	 * implicit truthiness).
 	 */
 	public static class If extends TypedFunction {
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/DateFunctions.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/DateFunctions.java
index 422cda3724..e39d3ac5fd 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/DateFunctions.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/DateFunctions.java
@@ -35,7 +35,9 @@ public final class DateFunctions {
 	private DateFunctions() {}
 
 	/** All function classes in this category. */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	public static final Class<? extends VarFunction>[] ALL = new Class[] {
 		Now.class, ParseDate.class, FormatDate.class
 	};
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/EncodingFunctions.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/EncodingFunctions.java
index 825caf55c6..15efa7f482 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/EncodingFunctions.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/EncodingFunctions.java
@@ -35,7 +35,9 @@ public final class EncodingFunctions {
 	private EncodingFunctions() {}
 
 	/** All function classes in this category. */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	public static final Class<? extends VarFunction>[] ALL = new Class[] {
 		Base64Encode.class, Base64Decode.class, UrlEncode.class, UrlDecode.class,
 		HtmlEscape.class, HtmlUnescape.class
@@ -104,7 +106,9 @@ public final class EncodingFunctions {
 	 * ({@code &#NNNN;}) and named ({@code &amp;} / {@code &lt;} / {@code &gt;} /
 	 * {@code &quot;} / {@code &apos;} / {@code &#39;}) entities.
 	 */
-	@SuppressWarnings("java:S3776") // Cognitive complexity: small inline entity decoder.
+	@SuppressWarnings({
+		"java:S3776" // Cognitive complexity: small inline entity decoder.
+	})
 	public static class HtmlUnescape extends TypedFunction {
 		@Override public String name() { return "htmlUnescape"; }
 		public String invoke(String s) {
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/JsonFunctions.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/JsonFunctions.java
index db4c056fbf..0a9c230475 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/JsonFunctions.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/JsonFunctions.java
@@ -35,7 +35,9 @@ public final class JsonFunctions {
 	private JsonFunctions() {}
 
 	/** All function classes in this category. */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	public static final Class<? extends VarFunction>[] ALL = new Class[] {
 		JsonPath.class, Get.class, Keys.class, Values.class, Size.class
 	};
@@ -58,7 +60,9 @@ public final class JsonFunctions {
 			return MiniJson.render(v);
 		}
 
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({
+			"unchecked" // Cast is safe: type verified by caller context.
+		})
 		private static Object navigate(Object root, String path) {
 			if (root == null || path == null) return null;
 			var p = path.startsWith("/") ? path.substring(1) : path;
@@ -85,7 +89,9 @@ public final class JsonFunctions {
 	 * {@code #{get(json, key)}} — extracts {@code json[key]} (object) or {@code json[index]}
 	 * (array, when {@code key} parses as int).
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	public static class Get extends TypedFunction {
 		@Override public String name() { return "get"; }
 		public String invoke(String json, String key) {
@@ -107,7 +113,9 @@ public final class JsonFunctions {
 	}
 
 	/** {@code #{keys(json)}} — returns a JSON-array-shortcut string of an object's keys. */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	public static class Keys extends TypedFunction {
 		@Override public String name() { return "keys"; }
 		public String invoke(String json) {
@@ -118,7 +126,9 @@ public final class JsonFunctions {
 	}
 
 	/** {@code #{values(json)}} — returns a JSON-array-shortcut string of an object's values (or array elements). */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	public static class Values extends TypedFunction {
 		@Override public String name() { return "values"; }
 		public String invoke(String json) {
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/JsonShortcut.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/JsonShortcut.java
index 05d97b2b1e..95297b8474 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/JsonShortcut.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/JsonShortcut.java
@@ -50,7 +50,9 @@ final class JsonShortcut {
 	 * array of the raw string when the input does not start with {@code [} / end with
 	 * {@code ]}, mirroring {@code ArgCoercer.parseStringArray}.
 	 */
-	@SuppressWarnings("java:S3776") // Cognitive complexity: small inline parser.
+	@SuppressWarnings({
+		"java:S3776" // Cognitive complexity: small inline parser.
+	})
 	static String[] decodeArray(String s) {
 		if (s == null) return new String[0];
 		var t = s.trim();
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/MiniJson.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/MiniJson.java
index 6d48d80e92..51160c5074 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/MiniJson.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/MiniJson.java
@@ -201,7 +201,9 @@ final class MiniJson {
 	 * Strings are rendered without surrounding quotes (so {@code get(...)} on an object property
 	 * returns the bare string value); container types (Map / List) are re-encoded.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	static String render(Object value) {
 		if (value == null) return "";
 		if (value instanceof String s) return s;
@@ -236,7 +238,9 @@ final class MiniJson {
 		return sb.toString();
 	}
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	private static void renderInto(StringBuilder sb, Object v) {
 		if (v == null) { sb.append("null"); return; }
 		if (v instanceof String s) { appendString(sb, s); return; }
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/RandomFunctions.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/RandomFunctions.java
index 1c625d02b9..bd2deabe3f 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/RandomFunctions.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/RandomFunctions.java
@@ -46,7 +46,9 @@ public final class RandomFunctions {
 	private RandomFunctions() {}
 
 	/** All function classes in this category. */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	public static final Class<? extends VarFunction>[] ALL = new Class[] {
 		Rand.class, RandInt.class, RandLong.class, RandString.class, RandChoice.class, Uuid.class
 	};
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/RegexFunctions.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/RegexFunctions.java
index 04b2a9b73a..b0b7d1ef37 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/RegexFunctions.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/RegexFunctions.java
@@ -36,7 +36,9 @@ public final class RegexFunctions {
 	private RegexFunctions() {}
 
 	/** All function classes in this category. */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	public static final Class<? extends VarFunction>[] ALL = new Class[] {
 		Match.class, Extract.class, ReplaceRegex.class
 	};
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/StringFunctions.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/StringFunctions.java
index 1c4f6e398e..24a1c7e0eb 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/StringFunctions.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/StringFunctions.java
@@ -27,14 +27,17 @@ import org.apache.juneau.commons.svl.*;
  * Each public static nested class is a {@link TypedFunction} registered under the function name
  * shown in its {@link VarFunction#name()} method. The {@code Replaces} annotation in each
  * nested-class Javadoc names the legacy {@code Var} class that was retired in 9.5.0 in favor of
- * the function form (see {@code FINISHED-102-svl-scripting.md} for the full migration table).
+ * the function form.
  */
 public final class StringFunctions {
 
 	private StringFunctions() {}
 
 	/** All function classes in this category, in registration order. */
-	@SuppressWarnings({"unchecked","java:S2368"})
+	@SuppressWarnings({
+		"unchecked",   // Array initializer with parameterized element type; class literals are always erased at runtime.
+		"java:S2368"   // Public array field is intentional: ALL is a compile-time registry constant, not a mutable collection.
+	})
 	public static final Class<? extends VarFunction>[] ALL = new Class[] {
 		Substring.class, Upper.class, Lower.class, Trim.class, StripLeading.class,
 		StripTrailing.class, StripSlashes.class, PathToken.class, Len.class, Replace.class,
@@ -132,7 +135,7 @@ public final class StringFunctions {
 	 * </ul>
 	 *
 	 * <p>
-	 * Used in SVL-configurable mixin paths (FINISHED-101 retrofit) so users can supply
+	 * Used in SVL-configurable mixin paths so users can supply
 	 * {@code "jsp"}, {@code "/jsp"}, {@code "/jsp/"}, {@code "/jsp/*"}, or {@code "jsp/*"} and
 	 * the template {@code /#{pathToken(${juneau.jsp.path:jsp})}/*} always resolves to a clean
 	 * {@code /jsp/*}.
@@ -272,7 +275,9 @@ public final class StringFunctions {
 		 * string. This keeps {@code %s} as the safe default while letting numeric specifiers
 		 * work without a separate {@code numericFormat(...)} entry point.
 		 */
-		@SuppressWarnings("java:S1166") // Exception swallowed — coercion is best-effort.
+		@SuppressWarnings({
+			"java:S1166" // Exception swallowed — coercion is best-effort.
+		})
 		private static Object coerceArgForFormat(String s) {
 			if (s == null) return "";
 			var t = s.trim();
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/TypeConversionFunctions.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/TypeConversionFunctions.java
index 00814d3c08..68a99e5c69 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/TypeConversionFunctions.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/svl/functions/TypeConversionFunctions.java
@@ -32,7 +32,9 @@ public final class TypeConversionFunctions {
 	private TypeConversionFunctions() {}
 
 	/** All function classes in this category. */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type verified by caller context.
+	})
 	public static final Class<? extends VarFunction>[] ALL = new Class[] {
 		ToInt.class, ToLong.class, ToDouble.class, ToBool.class
 	};
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
index 1c3a72c37c..8645cceb3b 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
@@ -1143,14 +1143,14 @@ public class CollectionUtils {
 	/**
 	 * Returns a null list.
 	 *
-	 * <p>TODO: SonarLint java:S1168 - Intentional null return for assertion testing. Consider Optional.
+	 * <p>Intentional null return for assertion testing.
 	 *
 	 * @param <T> The element type.
 	 * @param type The element type class.
 	 * @return <jk>null</jk>.
 	 */
 	@SuppressWarnings({
-		"java:S1168",    // TODO: Intentional null return for assertion testing. Consider Optional.
+		"java:S1168",    // Intentional null return for assertion testing.
 		"java:S1172"     // Parameter type is used for type inference, not runtime behavior
 	})
 	public static <T> List<T> listn(Class<T> type) {
@@ -1911,7 +1911,7 @@ public class CollectionUtils {
 	/**
 	 * Returns a null map.
 	 *
-	 * <p>TODO: SonarLint java:S1168 - Intentional null return for assertion testing. Consider Optional.
+	 * <p>Intentional null return for assertion testing.
 	 *
 	 * @param <K> The key type.
 	 * @param <V> The value type.
@@ -1920,7 +1920,7 @@ public class CollectionUtils {
 	 * @return <jk>null</jk>.
 	 */
 	@SuppressWarnings({
-		"java:S1168",    // TODO: Intentional null return for assertion testing. Consider Optional.
+		"java:S1168",    // Intentional null return for assertion testing. Consider Optional.
 		"java:S1172"    // Parameters required for type inference in public API
 	})
 	public static <K,V> Map<K,V> mapn(Class<K> keyType, Class<V> valueType) {
@@ -1946,14 +1946,14 @@ public class CollectionUtils {
 	/**
 	 * Returns <jk>null</jk> for the specified array type.
 	 *
-	 * <p>TODO: SonarLint java:S1168 - Intentional null return for assertion testing. Consider Optional.
+	 * <p>Intentional null return for assertion testing.
 	 *
 	 * @param <T> The component type.
 	 * @param type The component type class.
 	 * @return <jk>null</jk>.
 	 */
 	@SuppressWarnings({
-		"java:S1168",    // TODO: Intentional null return for assertion testing. Consider Optional.
+		"java:S1168",    // Intentional null return for assertion testing. 
 		"java:S1172"     // Parameter type is used for type inference, not runtime behavior
 	})
 	public static <T> T[] na(Class<T> type) {
@@ -2298,7 +2298,7 @@ public class CollectionUtils {
 	 * @return The wrapped list.
 	 */
 	@SuppressWarnings({
-		"java:S1168"     // TODO: Pass-through null by design. Consider empty list.
+		"java:S1168"     // Pass-through null by design. Consider empty list.
 	})
 	public static <E> List<E> synced(List<E> value) {
 		return value == null ? null : Collections.synchronizedList(value);
@@ -2313,7 +2313,7 @@ public class CollectionUtils {
 	 * @return The wrapped map.
 	 */
 	@SuppressWarnings({
-		"java:S1168"     // TODO: Pass-through null by design. Consider empty map.
+		"java:S1168"     // Pass-through null by design. Consider empty map.
 	})
 	public static <K,V> Map<K,V> synced(Map<K,V> value) {
 		return value == null ? null : Collections.synchronizedMap(value);
@@ -2327,7 +2327,7 @@ public class CollectionUtils {
 	 * @return The wrapped set.
 	 */
 	@SuppressWarnings({
-		"java:S1168"     // TODO: Pass-through null by design. Consider empty set.
+		"java:S1168"     // Pass-through null by design. Consider empty set.
 	})
 	public static <E> Set<E> synced(Set<E> value) {
 		return value == null ? null : Collections.synchronizedSet(value);
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/FileUtils.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/FileUtils.java
index 3119be6bdd..63bec58baf 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/FileUtils.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/FileUtils.java
@@ -373,7 +373,9 @@ public class FileUtils {
 	 * String-level path normalization for forward-slash separated virtual paths.
 	 * Returns {@code null} if a {@code ..} segment would pop above the root.
 	 */
-	@SuppressWarnings("java:S3776") // Cognitive complexity: small loop with three early-exit cases; splitting hurts readability.
+	@SuppressWarnings({
+		"java:S3776" // Cognitive complexity: small loop with three early-exit cases; splitting hurts readability.
+	})
 	private static String normalizeVirtualPath(String path) {
 		if (path == null)
 			return null;
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/IoUtils.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/IoUtils.java
index ed2b148b14..99cc966338 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/IoUtils.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/IoUtils.java
@@ -38,7 +38,9 @@ public class IoUtils {
 	public static final Charset UTF8 = StandardCharsets.UTF_8;
 
 	/** Reusable empty input stream. */
-	@SuppressWarnings("resource") // Intentional singleton; read() always returns -1 and close() is a no-op
+	@SuppressWarnings({
+		"resource" // Intentional singleton; read() always returns -1 and close() is a no-op
+	})
 	public static final InputStream EMPTY_INPUT_STREAM = new InputStream() {
 		@Override
 		public int read() {
@@ -83,7 +85,9 @@ public class IoUtils {
 	}
 
 	/** Reusable empty reader. */
-	@SuppressWarnings("resource") // Intentional singleton; read() always returns -1 and close() is a no-op
+	@SuppressWarnings({
+		"resource" // Intentional singleton; read() always returns -1 and close() is a no-op
+	})
 	public static final Reader EMPTY_READER = new Reader() {
 		@Override
 		public void close() throws IOException { /* no-op */ }
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
index c123e690fc..7440a97843 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
@@ -6537,7 +6537,7 @@ public class StringUtils {
 	 * @return The tokens, or <jk>null</jk> if the string was null.
 	 */
 	@SuppressWarnings({
-		"java:S1168"     // TODO: splita used widely; null propagates from split(). Consider empty array. See BasicCsvHeader, etc.
+		"java:S1168"     // splita used widely; null propagates from split(). Consider empty array. See BasicCsvHeader, etc.
 	})
 	public static String[] splita(String s, char c, int limit) {
 		if (s == null)
@@ -6554,7 +6554,7 @@ public class StringUtils {
 	 * @return The tokens, or null if the input array was null
 	 */
 	@SuppressWarnings({
-		"java:S1168"     // TODO: splita used widely. Consider empty array. See BasicCsvHeader, etc.
+		"java:S1168"     // splita used widely. Consider empty array. See BasicCsvHeader, etc.
 	})
 	public static String[] splita(String[] s, char c) {
 		if (s == null)
diff --git a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Utils.java b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Utils.java
index 69d5c85319..f367905b81 100644
--- a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Utils.java
+++ b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/Utils.java
@@ -56,7 +56,7 @@ import org.apache.juneau.commons.settings.*;
 @SuppressWarnings({
 	"java:S115", // Constants use UPPER_snakeCase convention
 	"java:S1118", // Utility class with static methods only
-	"java:S1135"  // TODO comment retained as documentation for future refactoring
+	"java:S1135"  // Marks an unfinished public API element — intentional placeholder.
 })
 public class Utils {
 
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/ConfigPropertySourceProvider.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/ConfigPropertySourceProvider.java
index e9d192d0d7..f7b6a2117e 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/ConfigPropertySourceProvider.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/ConfigPropertySourceProvider.java
@@ -104,7 +104,9 @@ public class ConfigPropertySourceProvider implements PropertySourceProvider {
 	 * 		{@link PropertyLookupResult#missing()} without memoizing the failure.
 	 * </ol>
 	 */
-	@SuppressWarnings("java:S1181") // Intentional broad Throwable catch — see Javadoc.
+	@SuppressWarnings({
+		"java:S1181" // Intentional broad Throwable catch — see Javadoc.
+	})
 	static final class LazyConfigPropertySource implements PropertySource {
 
 		// Thread-local re-entrance guard. Static so it covers both the lazy-init path and any
diff --git a/juneau-core/juneau-junit5/src/main/java/org/apache/juneau/junit5/JuneauBeanStoreExtension.java b/juneau-core/juneau-junit5/src/main/java/org/apache/juneau/junit5/JuneauBeanStoreExtension.java
index 6ef86d4ea8..dfeb208ab3 100644
--- a/juneau-core/juneau-junit5/src/main/java/org/apache/juneau/junit5/JuneauBeanStoreExtension.java
+++ b/juneau-core/juneau-junit5/src/main/java/org/apache/juneau/junit5/JuneauBeanStoreExtension.java
@@ -178,7 +178,7 @@ public class JuneauBeanStoreExtension implements BeforeAllCallback, AfterAllCall
 	 *
 	 * <p>
 	 * Calling {@code attach(...)} a second time before {@link #detach()} is permitted &mdash; the most recent
-	 * attachment wins.  If never called, the extension stays in Mode INJECT (Phase 1&ndash;5 back-compat).
+	 * attachment wins.  If never called, the extension stays in Mode INJECT.
 	 *
 	 * @param store The bean store to push/pop overlays against.  Must not be <jk>null</jk>.
 	 * @return This extension, for fluent chaining.
@@ -388,7 +388,7 @@ public class JuneauBeanStoreExtension implements BeforeAllCallback, AfterAllCall
 	 *
 	 * <p>
 	 * Mixing {@code Mode.INJECT} and {@code Mode.OVERLAY} declarations in the same scope throws an
-	 * {@link IllegalStateException} (per TODO-35 OQ3 &mdash; loud failure rather than silent degradation).
+	 * {@link IllegalStateException}.
 	 */
 	static ScopedStore buildClassScopeStoreWithMode(Class<?> testClass) {
 		var store = new TestBeanStore();
@@ -403,7 +403,7 @@ public class JuneauBeanStoreExtension implements BeforeAllCallback, AfterAllCall
 	 *
 	 * <p>
 	 * Mixing {@code Mode.INJECT} and {@code Mode.OVERLAY} declarations in the same scope throws an
-	 * {@link IllegalStateException} (per TODO-35 OQ3 &mdash; loud failure rather than silent degradation).
+	 * {@link IllegalStateException}.
 	 */
 	static ScopedStore buildMethodScopeStoreWithMode(Object testInstance, TestBeanStore classScopeParent) {
 		var store = new TestBeanStore(classScopeParent);
@@ -450,7 +450,7 @@ public class JuneauBeanStoreExtension implements BeforeAllCallback, AfterAllCall
 	 * field or method.
 	 *
 	 * <p>
-	 * Honors both instance and static members per the locked decision in {@code TODO-35} ("behave consistently with
+	 * Honors both instance and static members ("behave consistently with
 	 * non-static" for {@code scope = METHOD} on static fields).
 	 */
 	private static void populateInstanceOverrides(TestBeanStore store, Object testInstance, ModeTracker modeTracker) {
@@ -478,7 +478,7 @@ public class JuneauBeanStoreExtension implements BeforeAllCallback, AfterAllCall
 
 	/**
 	 * Tracks the {@link Mode} of {@code @TestBean} declarations encountered within a single scope and rejects
-	 * mixed-mode declarations per TODO-35 OQ3.
+	 * mixed-mode declarations.
 	 */
 	private static final class ModeTracker {
 		private final Scope scope;
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfApplyAnnotation.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfApplyAnnotation.java
index 0c69f75627..64e5899645 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfApplyAnnotation.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfApplyAnnotation.java
@@ -40,7 +40,9 @@ public class RdfApplyAnnotation {
 	/**
 	 * Applies targeted {@link RdfApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes") 
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<RdfApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfConfigAnnotation.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfConfigAnnotation.java
index 72a7dc9999..d05c66be78 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfConfigAnnotation.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/annotation/RdfConfigAnnotation.java
@@ -39,7 +39,9 @@ public class RdfConfigAnnotation {
 	/**
 	 * Applies {@link RdfConfig} annotations to a {@link org.apache.juneau.jena.RdfParser.Builder}.
 	 */
-	@SuppressWarnings("rawtypes") 
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class ParserApply extends AnnotationApplier<RdfConfig,RdfParser.Builder> {
 
 		/**
@@ -89,7 +91,9 @@ public class RdfConfigAnnotation {
 	/**
 	 * Applies {@link RdfConfig} annotations to a {@link org.apache.juneau.jena.RdfSerializer.Builder}.
 	 */
-	@SuppressWarnings("rawtypes") 
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class SerializerApply extends AnnotationApplier<RdfConfig,RdfSerializer.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BigNumberFormat.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BigNumberFormat.java
index 3996e0cbb4..71ac1a4202 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BigNumberFormat.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BigNumberFormat.java
@@ -191,7 +191,9 @@ public enum BigNumberFormat {
 	 * @return The parsed value, or <jk>null</jk> if {@code value} is <jk>null</jk> or blank.
 	 * @throws IllegalArgumentException If the value cannot be parsed as a number or {@code targetType} is unsupported.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: parameterized by caller.
+	})
 	public static <T extends Number> T parse(String value, BigNumberFormat format, Class<T> targetType) {
 		if (value == null)
 			return null;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BooleanFormat.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BooleanFormat.java
index 88fb1462a4..c64ef16ecc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BooleanFormat.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BooleanFormat.java
@@ -165,27 +165,27 @@ public enum BooleanFormat {
 	}
 
 	/**
-	 * Parses the specified wire value into a {@link Boolean}.
+	 * Parses the specified wire value into a primitive {@code boolean}.
 	 *
 	 * <p>
 	 * Lenient parsing — accepts any of the textual shapes ({@code true}/{@code false}, {@code 1}/{@code 0},
 	 * {@code yes}/{@code no}, {@code y}/{@code n}, {@code on}/{@code off}) regardless of the {@code format}
 	 * hint, case-insensitive. The hint is informational only.
 	 *
-	 * @param value The wire value. Can be <jk>null</jk> or blank.
+	 * @param value The wire value. Must not be <jk>null</jk> or blank.
 	 * @param format The configured format hint (informational only — parsing is format-agnostic). Can be <jk>null</jk>.
-	 * @return The parsed boolean, or <jk>null</jk> if {@code value} is <jk>null</jk> or blank.
-	 * @throws IllegalArgumentException If the value does not match any supported boolean textual shape.
+	 * @return The parsed boolean value.
+	 * @throws IllegalArgumentException If {@code value} is <jk>null</jk>, blank, or does not match any supported boolean textual shape.
 	 */
-	public static Boolean parse(String value, BooleanFormat format) {
+	public static boolean parse(String value, BooleanFormat format) {
 		if (value == null)
-			return null;
+			throw illegalArg("Cannot parse a null value as Boolean");
 		var s = value.trim();
 		if (s.isEmpty())
-			return null;
+			throw illegalArg("Cannot parse a blank value as Boolean");
 		return switch (s.toLowerCase()) {
-			case "true", "1", "yes", "y", "on" -> Boolean.TRUE;
-			case "false", "0", "no", "n", "off" -> Boolean.FALSE;
+			case "true", "1", "yes", "y", "on" -> true;
+			case "false", "0", "no", "n", "off" -> false;
 			default -> throw illegalArg("Invalid boolean value ''{0}'' for format {1}", value, format);
 		};
 	}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Constants.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Constants.java
index 73b30d4734..550699392c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Constants.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Constants.java
@@ -34,7 +34,7 @@ public class Constants {
 	 * Sentinel value to indicate that a default value is not specified.
 	 *
 	 * @see org.apache.juneau.commons.Constants#NONE
-	 * TODO - Replace this
+	 * TODO - Inline this
 	 */
 	public static final String NONE = org.apache.juneau.commons.Constants.NONE;
 }
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/FloatFormat.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/FloatFormat.java
index f97fcc369e..b4fb6da663 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/FloatFormat.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/FloatFormat.java
@@ -207,7 +207,9 @@ public enum FloatFormat {
 	 * @return The parsed value, or <jk>null</jk> if {@code value} is <jk>null</jk> or blank.
 	 * @throws IllegalArgumentException If the value cannot be parsed or {@code targetType} is unsupported.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: parameterized by caller.
+	})
 	public static <T extends Number> T parse(String value, FloatFormat format, Class<T> targetType) {
 		if (value == null)
 			return null;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/LocaleFormat.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/LocaleFormat.java
index ff4e7fa9d9..7e2d03fb30 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/LocaleFormat.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/LocaleFormat.java
@@ -87,7 +87,9 @@ public enum LocaleFormat {
 		};
 	}
 
-	@SuppressWarnings("deprecation")  // Locale(String, String, String) is deprecated in Java 19; Locale.of() requires Java 19+.
+	@SuppressWarnings({
+		"deprecation" // Locale(String, String, String) is deprecated in Java 19; Locale.of() requires Java 19+.
+	})
 	private static Locale parseUnderscore(String s) {
 		var parts = s.split("_", -1);
 		return switch (parts.length) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilter.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilter.java
index ea1312ce8f..65a6a85281 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilter.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledFilter.java
@@ -146,7 +146,9 @@ public class MarshalledFilter implements BeanFilter {
 		 * @param annotations The annotations to apply.
 		 * @return This object.
 		 */
-		@SuppressWarnings("java:S3776")
+		@SuppressWarnings({
+			"java:S3776" // Cognitive complexity: filter-apply dispatch is intentionally consolidated for JIT inlining.
+		})
 		public Builder applyBeanTypeAnnotations(List<BeanType> annotations) {
 
 			annotations.forEach(x -> {
@@ -314,7 +316,9 @@ public class MarshalledFilter implements BeanFilter {
 		 * 	<br>The default value is {@link BeanInterceptor}.
 		 * @return This object.
 		 */
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({
+			"unchecked" // Cast is safe: type parameter verified by caller.
+		})
 		public Builder interceptor(Class<?> value) {
 			interceptor.type((Class<? extends BeanInterceptor>) value);
 			return this;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledPropertyPostProcessor.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledPropertyPostProcessor.java
index fbd5c64fe6..40d18a5f3b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledPropertyPostProcessor.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshalledPropertyPostProcessor.java
@@ -177,7 +177,7 @@ final class MarshalledPropertyPostProcessor implements BeanPropertyPostProcessor
 
 		// Install swap-aware read/write transforms on the builder.
 		// Previously lived as a private static helper on {@link BeanMeta}; moved here during Task-5 Step 8b-ii
-		// Phase C Task 3 so {@link BeanMeta} no longer references {@link ObjectSwap}/{@link ParseException}/{@link SerializeException}.
+		// so {@link BeanMeta} no longer references {@link ObjectSwap}/{@link ParseException}/{@link SerializeException}.
 		installSwapAwareTransforms(b);
 
 		// Install schema-validation transforms (wraps any existing readTransform/writeTransform) when a
@@ -398,13 +398,13 @@ final class MarshalledPropertyPostProcessor implements BeanPropertyPostProcessor
 		if (ci.isAssignableTo(ObjectSwap.class)) {
 			var ps = BeanInstantiator.of(ObjectSwap.class).type(ci).run();
 			if (nn(ps.forMediaTypes()))
-				throw unsupportedOp("TODO - Media types on swaps not yet supported on bean properties.");
+				throw unsupportedOp("Media types on swaps not yet supported on bean properties.");
 			if (nn(ps.withTemplate()))
-				throw unsupportedOp("TODO - Templates on swaps not yet supported on bean properties.");
+				throw unsupportedOp("Templates on swaps not yet supported on bean properties.");
 			return ps;
 		}
 		if (ci.isAssignableTo(Surrogate.class))
-			throw unsupportedOp("TODO - Surrogate swaps not yet supported on bean properties.");
+			throw unsupportedOp("Surrogate swaps not yet supported on bean properties.");
 		throw rex("Invalid class used in @Swap annotation.  Must be a subclass of ObjectSwap or Surrogate. {0}", cn(c));
 	}
 
@@ -496,7 +496,9 @@ final class MarshalledPropertyPostProcessor implements BeanPropertyPostProcessor
 			b.swap = classSwap(m.classFormat());
 	}
 
-	@SuppressWarnings("java:S3776") // Cognitive-complexity threshold is advisory; consolidated per-type dispatch keeps JIT inlining effective per AGENTS.md policy.
+	@SuppressWarnings({
+		"java:S3776" // Cognitive-complexity threshold is advisory; consolidated per-type dispatch keeps JIT inlining effective per AGENTS.md policy.
+	})
 	private static void applyContextFormats(BeanPropertyMeta.Builder b, MarshallingContext bc, Class<?> propertyClass) {
 		if (Duration.class.equals(propertyClass))
 			b.swap = durationSwap(bc.getDurationFormat());
@@ -784,7 +786,6 @@ final class MarshalledPropertyPostProcessor implements BeanPropertyPostProcessor
 		// without a native byte-array wire type (hasNativeBytes()==false: Parquet, binary RDF) and
 		// textual sessions receive the formatted String.  Mirrors the variant-output pattern used by
 		// {@link #calendarSwap(CalendarFormat)} / {@link #temporalSwap(TemporalFormat, Class)}.  See
-		// TODO-57 OQ 10 (b) for the capability-check rationale.
 		return new ObjectSwap<>(byte[].class, Object.class) {
 			@Override /* ObjectSwap */
 			public Object swap(MarshallingSession session, byte[] o) {
@@ -867,7 +868,9 @@ final class MarshalledPropertyPostProcessor implements BeanPropertyPostProcessor
 		};
 	}
 
-	@SuppressWarnings("java:S3776") // Cognitive-complexity threshold is advisory; consolidated BigInteger/BigDecimal dispatch keeps JIT inlining effective per AGENTS.md policy.
+	@SuppressWarnings({
+		"java:S3776" // Cognitive-complexity threshold is advisory; consolidated BigInteger/BigDecimal dispatch keeps JIT inlining effective per AGENTS.md policy.
+	})
 	private static ObjectSwap<?,?> bigNumberSwap(BigNumberFormat format, Class<?> propertyClass) {
 		// Variant swap class (Object) — text serializers may receive either a Number (for NUMBER / AUTO-safe
 		// values) or a String (for STRING / AUTO-out-of-range values); binary serializers always receive the
@@ -933,9 +936,6 @@ final class MarshalledPropertyPostProcessor implements BeanPropertyPostProcessor
 			}
 
 			@Override /* ObjectSwap */
-			@SuppressWarnings({
-				"java:S2447" // Null is intentional here to preserve boxed-Boolean null semantics in swap contract.
-			})
 			public Boolean unswap(MarshallingSession session, Object o, ClassMeta<?> hint) {
 				if (o == null)
 					return null;
@@ -943,7 +943,10 @@ final class MarshalledPropertyPostProcessor implements BeanPropertyPostProcessor
 					return b;
 				if (o instanceof Number n)
 					return n.intValue() != 0;
-				return BooleanFormat.parse(o.toString(), format);
+				var str = o.toString();
+				if (str.trim().isEmpty())
+					return null;
+				return BooleanFormat.parse(str, format);
 			}
 		};
 	}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingSession.java
index c0e3edf201..4c45bd2872 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/MarshallingSession.java
@@ -1033,7 +1033,7 @@ public class MarshallingSession extends ContextSession implements ConverterSessi
 	 */
 	@SuppressWarnings({
 		"java:S1168",   // null when BeanMeta not found. Consider empty BeanMap.
-		"java:S1135"    // TODO comment - deferred design consideration
+		"java:S1135"    // Deferred design consideration.
 	})
 	public final <T> BeanMap<T> newBeanMap(Object outer, Class<T> c) {
 		var m = getBeanMeta(c);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanCtorApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanCtorApplyAnnotation.java
index d9a0bd16b4..11763a4dff 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanCtorApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanCtorApplyAnnotation.java
@@ -47,7 +47,9 @@ public class BeanCtorApplyAnnotation {
 	 * method handles unwrapping the nested {@link BeanCtor @BeanCtor} from {@link BeanCtorApply#value()} and registering it
 	 * under the targets specified by {@link BeanCtorApply#on()} and {@link BeanCtorApply#onClass()}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<BeanCtorApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanIgnoreApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanIgnoreApplyAnnotation.java
index 05ecd06923..a64ff3ce4b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanIgnoreApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanIgnoreApplyAnnotation.java
@@ -47,7 +47,9 @@ public class BeanIgnoreApplyAnnotation {
 	 * method handles unwrapping the nested {@link BeanIgnore @BeanIgnore} from {@link BeanIgnoreApply#value()} and
 	 * registering it under the targets specified by {@link BeanIgnoreApply#on()} and {@link BeanIgnoreApply#onClass()}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<BeanIgnoreApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanPropApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanPropApplyAnnotation.java
index c98f05c2d7..22503859fc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanPropApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanPropApplyAnnotation.java
@@ -47,7 +47,9 @@ public class BeanPropApplyAnnotation {
 	 * method handles unwrapping the nested {@link BeanProp @BeanProp} from {@link BeanPropApply#value()} and registering it
 	 * under the targets specified by {@link BeanPropApply#on()} and {@link BeanPropApply#onClass()}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<BeanPropApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanTypeApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanTypeApplyAnnotation.java
index f7a06635e3..f43c516b12 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanTypeApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanTypeApplyAnnotation.java
@@ -47,7 +47,9 @@ public class BeanTypeApplyAnnotation {
 	 * method handles unwrapping the nested {@link BeanType @BeanType} from {@link BeanTypeApply#value()} and registering it
 	 * under the targets specified by {@link BeanTypeApply#on()} and {@link BeanTypeApply#onClass()}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<BeanTypeApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExampleApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExampleApplyAnnotation.java
index de83e5f8a7..28b62ff255 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExampleApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ExampleApplyAnnotation.java
@@ -46,7 +46,9 @@ public class ExampleApplyAnnotation {
 	 * method handles unwrapping the nested {@link Example @Example} from {@link ExampleApply#value()} and registering it
 	 * under the targets specified by {@link ExampleApply#on()} and {@link ExampleApply#onClass()}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<ExampleApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledApplyAnnotation.java
index 6c8584c5fa..584c4e1e05 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledApplyAnnotation.java
@@ -46,7 +46,9 @@ public class MarshalledApplyAnnotation {
 	 * method handles unwrapping the nested {@link Marshalled @Marshalled} from {@link MarshalledApply#value()} and registering it
 	 * under the targets specified by {@link MarshalledApply#on()} and {@link MarshalledApply#onClass()}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<MarshalledApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledConfig.java
index e2c7c5e3e9..9013b7ef62 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledConfig.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledConfig.java
@@ -35,8 +35,8 @@ import org.apache.juneau.swap.*;
  * Used primarily for specifying marshalling configuration properties on REST classes and methods.
  *
  * <p>
- * This annotation is the marshalling-only sibling of {@code @BeanConfig}. After the Phase 3 split,
- * bean-modeling attributes (visibility settings, fluent-setter detection, property naming, not-bean
+ * This annotation is the marshalling-only sibling of {@code @BeanConfig}.
+ * Bean-modeling attributes (visibility settings, fluent-setter detection, property naming, not-bean
  * exclusions, etc.) live on {@link BeanConfig @BeanConfig} in
  * {@code juneau-commons}. Attributes that affect wire format, type discriminators, swap classes,
  * locale/media-type/timezone, and debug mode stay here on {@code @MarshalledConfig}.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledIgnoreApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledIgnoreApplyAnnotation.java
index d0fbf5051b..70be95b989 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledIgnoreApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledIgnoreApplyAnnotation.java
@@ -40,7 +40,9 @@ public class MarshalledIgnoreApplyAnnotation {
 	/**
 	 * Applies targeted {@link MarshalledIgnoreApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<MarshalledIgnoreApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledPropApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledPropApplyAnnotation.java
index 759a2ca4db..5f3c831f3d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledPropApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/MarshalledPropApplyAnnotation.java
@@ -40,7 +40,9 @@ public class MarshalledPropApplyAnnotation {
 	/**
 	 * Applies targeted {@link MarshalledPropApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<MarshalledPropApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/NamePropertyApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/NamePropertyApplyAnnotation.java
index 3b8d44a734..6507a5273c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/NamePropertyApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/NamePropertyApplyAnnotation.java
@@ -46,7 +46,9 @@ public class NamePropertyApplyAnnotation {
 	 * method handles unwrapping the nested {@link NameProperty @NameProperty} from {@link NamePropertyApply#value()} and registering it
 	 * under the targets specified by {@link NamePropertyApply#on()}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<NamePropertyApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ParentPropertyApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ParentPropertyApplyAnnotation.java
index 74b03e5745..958571c1a1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ParentPropertyApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/ParentPropertyApplyAnnotation.java
@@ -46,7 +46,9 @@ public class ParentPropertyApplyAnnotation {
 	 * method handles unwrapping the nested {@link ParentProperty @ParentProperty} from {@link ParentPropertyApply#value()} and registering it
 	 * under the targets specified by {@link ParentPropertyApply#on()}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<ParentPropertyApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SchemaApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SchemaApplyAnnotation.java
index 7f1aaa7332..d504dfb9dc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SchemaApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SchemaApplyAnnotation.java
@@ -46,7 +46,9 @@ public class SchemaApplyAnnotation {
 	 * method handles unwrapping the nested {@link Schema @Schema} from {@link SchemaApply#value()} and registering it
 	 * under the targets specified by {@link SchemaApply#on()} and {@link SchemaApply#onClass()}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<SchemaApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SwapApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SwapApplyAnnotation.java
index 67ed2f845c..94a28cd369 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SwapApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/SwapApplyAnnotation.java
@@ -46,7 +46,9 @@ public class SwapApplyAnnotation {
 	 * method handles unwrapping the nested {@link Swap @Swap} from {@link SwapApply#value()} and registering it
 	 * under the targets specified by {@link SwapApply#on()} and {@link SwapApply#onClass()}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<SwapApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/UriApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/UriApplyAnnotation.java
index ff00b31db0..6919920a1b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/UriApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/UriApplyAnnotation.java
@@ -46,7 +46,9 @@ public class UriApplyAnnotation {
 	 * method handles unwrapping the nested {@link Uri @Uri} from {@link UriApply#value()} and registering it
 	 * under the targets specified by {@link UriApply#on()} and {@link UriApply#onClass()}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<UriApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/bson/BsonSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/bson/BsonSerializerSession.java
index 3c64ae01d8..e5d93ef185 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/bson/BsonSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/bson/BsonSerializerSession.java
@@ -263,7 +263,9 @@ public class BsonSerializerSession extends OutputStreamSerializerSession {
 		}
 	}
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast from raw type is safe by checked conditional above.
+	})
 	private void serializeArray(BsonOutputStream out, Collection c, ClassMeta<?> type) throws SerializeException {
 		var elementType = type.getElementType();
 		c = sort(c);
@@ -272,7 +274,9 @@ public class BsonSerializerSession extends OutputStreamSerializerSession {
 			writeElement(out, String.valueOf(idx++), x, elementType, null);
 	}
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast from raw type is safe by checked conditional above.
+	})
 	private void serializeMap(BsonOutputStream out, Map m, ClassMeta<?> type) throws SerializeException {
 		var valueType = type.getValueType();
 		var keyType = type.getKeyType();
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/bson/annotation/BsonApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/bson/annotation/BsonApplyAnnotation.java
index 5bfb35fbe9..6e669d1975 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/bson/annotation/BsonApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/bson/annotation/BsonApplyAnnotation.java
@@ -40,7 +40,9 @@ public class BsonApplyAnnotation {
 	/**
 	 * Applies targeted {@link BsonApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<BsonApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cbor/annotation/CborApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cbor/annotation/CborApplyAnnotation.java
index e7c3b60002..b13a491e78 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cbor/annotation/CborApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cbor/annotation/CborApplyAnnotation.java
@@ -40,7 +40,9 @@ public class CborApplyAnnotation {
 	/**
 	 * Applies targeted {@link CborApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<CborApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/MarshalledList.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/MarshalledList.java
index da4a3b3fc8..c51c2c1a65 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/MarshalledList.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/MarshalledList.java
@@ -349,8 +349,9 @@ public class MarshalledList extends LinkedList<Object> {
 	 * @return This object.
 	 */
 	public MarshalledList appendReverse(List<?> values) {
-		for (ListIterator<?> i = values.listIterator(values.size()); i.hasPrevious();)
-			add(i.previous());
+		if (nn(values))
+			for (ListIterator<?> i = values.listIterator(values.size()); i.hasPrevious();)
+				add(i.previous());
 		return this;
 	}
 
@@ -364,8 +365,9 @@ public class MarshalledList extends LinkedList<Object> {
 	 * @return This object.
 	 */
 	public MarshalledList appendReverse(Object...values) {
-		for (var i = values.length - 1; i >= 0; i--)
-			add(values[i]);
+		if (values != null)
+			for (var i = values.length - 1; i >= 0; i--)
+				add(values[i]);
 		return this;
 	}
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/MarshalledMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/MarshalledMap.java
index d70e1a8895..216cc8ebbe 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/MarshalledMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/MarshalledMap.java
@@ -1070,7 +1070,7 @@ public class MarshalledMap extends LinkedHashMap<String,Object> {
 			r = toStringArray(l(s3));
 		else
 			r = StringUtils.splita(s(s));
-		return (r.length == 0 ? def : r);
+		return (r == null || r.length == 0) ? def : r;
 	}
 
 	/**
@@ -1185,7 +1185,8 @@ public class MarshalledMap extends LinkedHashMap<String,Object> {
 	 * @throws InvalidDataConversionException If value cannot be converted.
 	 */
 	public boolean is(String key, boolean defVal) {
-		return getWithDefault(key, defVal, Boolean.class);
+		Boolean result = getWithDefault(key, defVal, Boolean.class);
+		return result != null ? result : defVal;
 	}
 
 	/**
@@ -1496,14 +1497,17 @@ public class MarshalledMap extends LinkedHashMap<String,Object> {
 
 				// Iterate through all the entries in the map and set the individual field values.
 				forEach((k, v) -> {
-					if (! k.equals(bs.getBeanTypePropertyName(cm))) {
+				if (! k.equals(bs.getBeanTypePropertyName(cm))) {
 
-						// Attempt to recursively cast child maps.
-						if (v instanceof MarshalledMap v2)
-							v = v2.cast((ClassMeta<?>) bm.getProperty(k).getMeta().getBeanInfo());
-
-						bm.put(k, v);
+					// Attempt to recursively cast child maps.
+					if (v instanceof MarshalledMap v2) {
+						var pm = bm.getProperty(k);
+						if (pm != null)
+							v = v2.cast((ClassMeta<?>) pm.getMeta().getBeanInfo());
 					}
+
+					bm.put(k, v);
+				}
 				});
 
 				return bm.getBean();
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/CsvApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/CsvApplyAnnotation.java
index e415531326..9ace5c2f33 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/CsvApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/csv/annotation/CsvApplyAnnotation.java
@@ -33,7 +33,9 @@ public class CsvApplyAnnotation {
 
 	private CsvApplyAnnotation() {}
 
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<CsvApply,Context.Builder> {
 
 		public Applier(VarResolverSession vr) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderSet.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderSet.java
index 2feb6a90a8..1b94397427 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderSet.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderSet.java
@@ -321,7 +321,9 @@ public class EncoderSet {
 		if (o instanceof Encoder o2)
 			return o2;
 		try {
-			@SuppressWarnings("unchecked")
+			@SuppressWarnings({
+				"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+			})
 			var subType = (Class<? extends Encoder>) o;
 			return BeanInstantiator.of(Encoder.class, bs).type(subType).run();
 		} catch (ExecutableException e) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/hjson/annotation/HjsonApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/hjson/annotation/HjsonApplyAnnotation.java
index de68956863..41dbe3b86b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/hjson/annotation/HjsonApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/hjson/annotation/HjsonApplyAnnotation.java
@@ -40,7 +40,9 @@ public class HjsonApplyAnnotation {
 	/**
 	 * Applies targeted {@link HjsonApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<HjsonApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/hocon/annotation/HoconApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/hocon/annotation/HoconApplyAnnotation.java
index ad4a899e03..6243ab0d08 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/hocon/annotation/HoconApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/hocon/annotation/HoconApplyAnnotation.java
@@ -40,7 +40,9 @@ public class HoconApplyAnnotation {
 	/**
 	 * Applies targeted {@link HoconApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<HoconApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
index 40a3271a2c..b1b03f93d2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
@@ -53,10 +53,12 @@ import org.apache.juneau.xml.annotation.*;
  * </ul>
  */
 @SuppressWarnings({
-	"resource", // Resource management handled externally
-	"java:S110", // Inheritance depth acceptable for this class hierarchy
-	"java:S115", // Constants use UPPER_snakeCase naming convention
-	"java:S6541" // Brain method acceptable for serializeAnything; refactoring would reduce clarity
+	"resource",   // Resource management handled externally
+	"rawtypes",   // Raw types necessary for generic type handling throughout HTML serializer session
+	"unchecked",  // Type erasure requires unchecked casts throughout HTML serializer session
+	"java:S110",  // Inheritance depth acceptable for this class hierarchy
+	"java:S115",  // Constants use UPPER_snakeCase naming convention
+	"java:S6541"  // Brain method acceptable for serializeAnything; refactoring would reduce clarity
 })
 public class HtmlSerializerSession extends XmlSerializerSession {
 
@@ -335,10 +337,6 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 	}
 
 	
-	@SuppressWarnings({
-		"rawtypes", // Raw types necessary for generic type handling
-		"unchecked", // Type erasure requires unchecked casts
-	})
 	private String getStyle(HtmlSerializerSession session, BeanPropertyMeta pMeta, Object value) {
 		// Check for annotation style first
 		if (nn(pMeta)) {
@@ -357,13 +355,11 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 	 * Returns an empty array if it should be treated as a table but without headers.
 	 * 2-dimensional tables are used for collections of objects that all have the same set of property names.
 	 *
-	 * TODO: SonarLint java:S1168 - null vs empty array have distinct semantics here (don't use table vs table with no headers).
+	 * Null vs empty array have distinct semantics here (don't use table vs table with no headers).
 	 * Consider Optional or separate method to avoid null return.
 	 */
 	@SuppressWarnings({
-		"rawtypes",       // Collection uses raw type for mixed beans/maps
-		"unchecked",      // Type erasure in generic collection handling
-		"java:S1168",     // TODO: null vs empty array have distinct semantics (don't use table vs table with no headers)
+		"java:S1168",     // Null vs empty array have distinct semantics (don't use table vs table with no headers)
 		"java:S3776"      // Cognitive complexity acceptable for table header resolution
 	})
 	private Object[] getTableHeaders(Collection c, HtmlBeanPropertyMeta bpHtml) throws SerializeException {
@@ -502,8 +498,6 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 
 	
 	@SuppressWarnings({
-		"rawtypes", // Raw types necessary for generic type handling
-		"unchecked", // Type erasure requires unchecked casts in collection/map serialization
 		"java:S3776", // Cognitive complexity acceptable for this specific logic
 		"java:S6541", // Single-threaded session contexts do not require synchronization
 	})
@@ -665,10 +659,6 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 	}
 
 	
-	@SuppressWarnings({
-		"rawtypes", // Raw types necessary for generic type handling
-		"unchecked", // Type erasure requires unchecked casts in collection/map serialization
-	})
 	private void serializeMap(XmlWriter out, Map m, ClassMeta<?> sType, ClassMeta<?> eKeyType, ClassMeta<?> eValueType, String typeName, BeanPropertyMeta ppMeta) throws SerializeException {
 
 		var keyType = eKeyType == null ? string() : eKeyType;
@@ -697,9 +687,6 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 		out.ie(i).eTag(TAG_table).nl(i);
 	}
 
-	@SuppressWarnings({
-		"rawtypes" // Raw types necessary for generic type handling
-	})
 	private void serializeMapEntry(XmlWriter out, Map.Entry e, ClassMeta<?> keyType, ClassMeta<?> valueType, int i, BeanPropertyMeta ppMeta) throws SerializeException {
 		Object key = generalize(e.getKey(), keyType);
 		Object value = null;
@@ -844,8 +831,6 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 	 */
 	
 	@SuppressWarnings({
-		"rawtypes", // Raw types necessary for generic type handling
-		"unchecked", // Type erasure requires unchecked casts
 		"null", // Null handling verified by context or framework
 		"java:S3776", // Cognitive complexity acceptable for this specific logic
 		"java:S107", // Method has many parameters; acceptable for builder/configuration methods
@@ -1064,9 +1049,6 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 		return cr;
 	}
 
-	@SuppressWarnings({
-		"rawtypes" // Raw types necessary for XmlSerializerSession override
-	})
 	@Override /* Overridden from XmlSerializerSession */
 	protected ContentResult serializeAnything(XmlWriter out, Object o, ClassMeta<?> eType, String keyName, String elementName, Namespace elementNamespace, boolean addNamespaceUris, XmlFormat format,
 		boolean isMixed, boolean preserveWhitespace, BeanPropertyMeta pMeta) throws SerializeException {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlApplyAnnotation.java
index 6df6db369d..ffbdc03767 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlApplyAnnotation.java
@@ -40,7 +40,9 @@ public class HtmlApplyAnnotation {
 	/**
 	 * Applies targeted {@link HtmlApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<HtmlApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlConfigAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlConfigAnnotation.java
index 995e31cfe8..2d6c0ea06d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlConfigAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlConfigAnnotation.java
@@ -58,7 +58,9 @@ public class HtmlConfigAnnotation {
 	/**
 	 * Applies {@link HtmlConfig} annotations to a {@link org.apache.juneau.html.HtmlSerializer.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class SerializerApply extends AnnotationApplier<HtmlConfig,HtmlSerializer.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfigAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfigAnnotation.java
index f491b2d78e..58b696d604 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfigAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlDocConfigAnnotation.java
@@ -38,7 +38,9 @@ public class HtmlDocConfigAnnotation {
 	/**
 	 * Applies {@link HtmlDocConfig} annotations to a {@link org.apache.juneau.html.HtmlDocSerializer.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class SerializerApply extends AnnotationApplier<HtmlDocConfig,HtmlDocSerializer.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLinkApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLinkApplyAnnotation.java
index 62f56a43cb..eb5f65bdcb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLinkApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/annotation/HtmlLinkApplyAnnotation.java
@@ -39,7 +39,9 @@ public class HtmlLinkApplyAnnotation {
 	/**
 	 * Applies targeted {@link HtmlLinkApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<HtmlLinkApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
index 173aa3f7a4..ad5073b894 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
@@ -3522,7 +3522,7 @@ public class HttpPartSchema {
 	}
 
 	@SuppressWarnings({
-		"java:S1168"     // TODO: null when input null. Consider empty map.
+		"java:S1168"     // Null when input null. Consider empty map.
 	})
 	private static Map<String,HttpPartSchema> build(Map<String,Object> in, boolean noValidate) {
 		if (in == null)
@@ -3533,7 +3533,7 @@ public class HttpPartSchema {
 	}
 
 	@SuppressWarnings({
-		"java:S1168"     // TODO: null for null input. Consider default schema.
+		"java:S1168"     // Null for null input. Consider default schema.
 	})
 	private static HttpPartSchema build(Object in, boolean noValidate) {
 		if (in == null)
@@ -3559,7 +3559,7 @@ public class HttpPartSchema {
 	}
 
 	@SuppressWarnings({
-		"java:S1168"     // TODO: null for empty input. Consider empty set.
+		"java:S1168"     // Null for empty input. Consider empty set.
 	})
 	static final Set<String> toSet(String s) {
 		if (isEmpty(s))
@@ -3570,7 +3570,7 @@ public class HttpPartSchema {
 	}
 
 	@SuppressWarnings({
-		"java:S1168"     // TODO: null when all arrays empty. Consider empty set.
+		"java:S1168"     // Null when all arrays empty. Consider empty set.
 	})
 	static final Set<String> toSet(String[]...s) {
 		var isNotEmpty = false;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ini/annotation/IniApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ini/annotation/IniApplyAnnotation.java
index 0c349e7876..aca10d9a15 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ini/annotation/IniApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ini/annotation/IniApplyAnnotation.java
@@ -40,7 +40,9 @@ public class IniApplyAnnotation {
 	/**
 	 * Applies targeted {@link IniApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<IniApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerSession.java
index b8eedc1ceb..5b12da4b85 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerSession.java
@@ -44,9 +44,11 @@ import org.apache.juneau.commons.bean.BeanPropertyMeta;
  * </ul>
  */
 @SuppressWarnings({
-	"resource", // Resource management handled externally
-	"java:S110", // Inheritance depth acceptable for this class hierarchy
-	"java:S115" // Constants use UPPER_snakeCase naming convention
+	"resource",   // Resource management handled externally
+	"rawtypes",   // Raw types necessary for generic collection/map serialization throughout this session
+	"unchecked",  // Type erasure requires unchecked casts throughout this session
+	"java:S110",  // Inheritance depth acceptable for this class hierarchy
+	"java:S115"   // Constants use UPPER_snakeCase naming convention
 })
 public class JsonSerializerSession extends WriterSerializerSession {
 
@@ -178,10 +180,6 @@ public class JsonSerializerSession extends WriterSerializerSession {
 	}
 
 	
-	@SuppressWarnings({
-		"rawtypes", // Raw types necessary for generic collection/map serialization
-		"unchecked", // Type erasure requires unchecked casts in collection/map serialization
-	})
 	private SerializerWriter serializeCollection(JsonWriter out, Collection c, ClassMeta<?> type) throws SerializeException {
 
 		var elementType = type.getElementType();
@@ -214,10 +212,6 @@ public class JsonSerializerSession extends WriterSerializerSession {
 	}
 
 	
-	@SuppressWarnings({
-		"rawtypes", // Raw types necessary for generic collection/map serialization
-		"unchecked", // Type erasure requires unchecked casts in collection/map serialization
-	})
 	protected SerializerWriter serializeMap(JsonWriter out, Map m, ClassMeta<?> type) throws SerializeException {
 
 		var keyType = type.getKeyType();
@@ -297,7 +291,6 @@ public class JsonSerializerSession extends WriterSerializerSession {
 	 */
 	
 	@SuppressWarnings({
-		"rawtypes", // Raw types necessary for generic type handling
 		"java:S3776", // Cognitive complexity acceptable for this specific logic
 	})
 	protected JsonWriter serializeAnything(JsonWriter out, Object o, ClassMeta<?> eType, String attrName, BeanPropertyMeta pMeta) throws SerializeException {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonApplyAnnotation.java
index 746e258b6e..f3de08fea8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonApplyAnnotation.java
@@ -46,7 +46,9 @@ public class JsonApplyAnnotation {
 	 * method handles unwrapping the nested {@link Json @Json} from {@link JsonApply#value()} and registering it
 	 * under the targets specified by {@link JsonApply#on()} and {@link JsonApply#onClass()}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<JsonApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonConfigAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonConfigAnnotation.java
index 9a0feaa9a0..1f22bbe6ae 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonConfigAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/JsonConfigAnnotation.java
@@ -38,7 +38,9 @@ public class JsonConfigAnnotation {
 	/**
 	 * Applies {@link JsonConfig} annotations to a {@link org.apache.juneau.json.JsonParser.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class ParserApply extends AnnotationApplier<JsonConfig,JsonParser.Builder> {
 
 		/**
@@ -61,7 +63,9 @@ public class JsonConfigAnnotation {
 	/**
 	 * Applies {@link JsonConfig} annotations to a {@link org.apache.juneau.json.JsonSerializer.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class SerializerApply extends AnnotationApplier<JsonConfig,JsonSerializer.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json5/Json5ParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json5/Json5ParserSession.java
index 9d7933a323..51065e5ad1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json5/Json5ParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json5/Json5ParserSession.java
@@ -171,7 +171,10 @@ public class Json5ParserSession extends JsonParserSession {
 
 		skipCommentsAndSpace(r);
 		if (r.peek() == '+') {
-			@SuppressWarnings("unused") int ignored = r.read();
+			@SuppressWarnings({
+				"unused" // Intentionally unused; variable/parameter is required by the interface contract
+			})
+			int ignored = r.read();
 			skipCommentsAndSpace(r);
 			s += parseString(r);
 		}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonl/annotation/JsonlConfigAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonl/annotation/JsonlConfigAnnotation.java
index e89c07befa..fa14def8d5 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonl/annotation/JsonlConfigAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonl/annotation/JsonlConfigAnnotation.java
@@ -31,7 +31,9 @@ public class JsonlConfigAnnotation {
 	/**
 	 * Applies {@link JsonlConfig} annotations to a {@link org.apache.juneau.json.JsonParser.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class ParserApply extends AnnotationApplier<JsonlConfig, JsonParser.Builder> {
 
 		/**
@@ -52,7 +54,9 @@ public class JsonlConfigAnnotation {
 	/**
 	 * Applies {@link JsonlConfig} annotations to a {@link org.apache.juneau.json.JsonSerializer.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class SerializerApply extends AnnotationApplier<JsonlConfig, JsonSerializer.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
index ba7a6cc02d..02ab85b482 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
@@ -270,7 +270,7 @@ public class JsonSchemaGeneratorSession extends MarshallingTraverseSession {
 	}
 
 	@SuppressWarnings({
-		"java:S1168",    // TODO: null when type ignored. Consider empty schema.
+		"java:S1168",    // TODO: null when type ignored. Consider returning empty schema instead?
 		"java:S3776", // Cognitive complexity acceptable for schema generation over type categories
 		"java:S6541", // Brain Method — unified getSchema branching over serializers/types is intentional
 		"rawtypes", // Raw types necessary for generic type handling
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownDocSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownDocSerializerSession.java
index 429d51809d..aca9634006 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownDocSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownDocSerializerSession.java
@@ -173,7 +173,7 @@ public class MarkdownDocSerializerSession extends MarkdownSerializerSession {
 	 * @throws SerializeException If serialization fails.
 	 */
 	protected void serializeBeanWithHeadings(MarkdownWriter w, BeanMap<?> bm, int level) throws IOException, SerializeException {
-		// Phase 1: collect simple properties for the key/value table
+		// Collect simple properties for the key/value table
 		var simpleProps = new java.util.LinkedHashMap<String, Object>();
 		var complexProps = new java.util.LinkedHashMap<String, Object>();
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownSerializerSession.java
index e427da26d3..f3e89ed8ca 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/MarkdownSerializerSession.java
@@ -41,11 +41,12 @@ import org.apache.juneau.commons.bean.BeanPropertyMeta;
  *
  */
 @SuppressWarnings({
-	"java:S110", // Inheritance depth acceptable for serializer session hierarchy
-	"java:S115", // Constants use UPPER_snakeCase convention
+	"java:S110",  // Inheritance depth acceptable for serializer session hierarchy
+	"java:S115",  // Constants use UPPER_snakeCase convention
+	"java:S3740", // Raw ClassMeta/ObjectSwap types used throughout serializer session; parameterization requires extensive generic changes
 	"java:S3776", // Cognitive complexity acceptable for doSerialize
 	"java:S6541", // Brain method acceptable for doSerialize / serializeAnything
-	"resource", // MarkdownWriter/Writer lifecycle managed by SerializerPipe
+	"resource",   // MarkdownWriter/Writer lifecycle managed by SerializerPipe
 	"rawtypes",
 })
 public class MarkdownSerializerSession extends WriterSerializerSession {
@@ -299,18 +300,9 @@ public class MarkdownSerializerSession extends WriterSerializerSession {
 					w.tableRow(row);
 					continue;
 				}
-				@SuppressWarnings({
-					"java:S3740" // Raw ClassMeta from getClassMetaForObject
-				})
 				ClassMeta itemCm = getClassMetaForObject(item);
-				@SuppressWarnings({
-					"java:S3740" // Raw ObjectSwap from ClassMeta.getSwap
-				})
 				ObjectSwap itemSwap = itemCm.getSwap(this);
 				var swapped = itemSwap != null ? swap(itemSwap, item) : item;
-				@SuppressWarnings({
-					"java:S3740" // Raw ClassMeta from ObjectSwap.getSwapClassMeta
-				})
 				ClassMeta swappedCm = itemSwap != null ? itemSwap.getSwapClassMeta(this) : itemCm;
 
 				var row = new String[finalHeaders.length];
@@ -430,9 +422,6 @@ public class MarkdownSerializerSession extends WriterSerializerSession {
 	 * @return The cell string value.
 	 * @throws SerializeException If serialization fails.
 	 */
-	@SuppressWarnings({
-		"java:S3740" // Raw ClassMeta/ObjectSwap from runtime object inspection
-	})
 	protected String serializeInlineValue(Object o) throws SerializeException {
 		if (o == null)
 			return nullValue;
@@ -490,8 +479,7 @@ public class MarkdownSerializerSession extends WriterSerializerSession {
 	 * @throws SerializeException If inspection fails.
 	 */
 	@SuppressWarnings({
-		"java:S1168", // null signals list rendering; empty array would incorrectly trigger table mode
-		"java:S3740" // Raw ClassMeta from getClassMetaForObject on collection elements
+		"java:S1168" // null signals list rendering; empty array would incorrectly trigger table mode
 	})
 	protected String[] getTableHeaders(Collection<?> c) throws SerializeException {
 		if (c.isEmpty())
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/annotation/MarkdownApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/annotation/MarkdownApplyAnnotation.java
index 118bf4d758..6ee76f7a01 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/annotation/MarkdownApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/annotation/MarkdownApplyAnnotation.java
@@ -40,7 +40,9 @@ public class MarkdownApplyAnnotation {
 	/**
 	 * Applies targeted {@link MarkdownApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<MarkdownApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/annotation/MarkdownConfigAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/annotation/MarkdownConfigAnnotation.java
index 81e79b2524..55d0657231 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/annotation/MarkdownConfigAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/markdown/annotation/MarkdownConfigAnnotation.java
@@ -31,7 +31,9 @@ public class MarkdownConfigAnnotation {
 	/**
 	 * Applies {@link MarkdownConfig} annotations to a {@link org.apache.juneau.markdown.MarkdownParser.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class ParserApply extends AnnotationApplier<MarkdownConfig,MarkdownParser.Builder> {
 
 		/**
@@ -52,7 +54,9 @@ public class MarkdownConfigAnnotation {
 	/**
 	 * Applies {@link MarkdownConfig} annotations to a {@link org.apache.juneau.markdown.MarkdownSerializer.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class SerializerApply extends AnnotationApplier<MarkdownConfig,MarkdownSerializer.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshaller/Parquet.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshaller/Parquet.java
index 3f904be194..8ee5ca377f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshaller/Parquet.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshaller/Parquet.java
@@ -118,7 +118,9 @@ public class Parquet extends StreamMarshaller {
 	 * @throws ParseException Malformed input encountered.
 	 * @throws IOException Thrown by underlying stream.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	public static <T> List<T> to(Object input, Class<T> type) throws ParseException, IOException {
 		return (List<T>) DEFAULT.read(input, List.class, type);
 	}
@@ -144,7 +146,9 @@ public class Parquet extends StreamMarshaller {
 	 * @throws ParseException Malformed input encountered.
 	 * @throws IOException Thrown by underlying stream.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	public static <T> List<T> to(Object input, Type type) throws ParseException, IOException {
 		return (List<T>) DEFAULT.read(input, List.class, type);
 	}
@@ -158,7 +162,9 @@ public class Parquet extends StreamMarshaller {
 	 * @return The parsed list of beans.
 	 * @throws ParseException Malformed input encountered.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	public static <T> List<T> to(byte[] input, Class<T> type) throws ParseException {
 		return (List<T>) DEFAULT.read(input, List.class, type);
 	}
@@ -172,7 +178,9 @@ public class Parquet extends StreamMarshaller {
 	 * @return The parsed list.
 	 * @throws ParseException Malformed input encountered.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	public static <T> List<T> to(byte[] input, Type type) throws ParseException {
 		return (List<T>) DEFAULT.read(input, List.class, type);
 	}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackApplyAnnotation.java
index e105c7b41b..ee31305710 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/annotation/MsgPackApplyAnnotation.java
@@ -40,7 +40,9 @@ public class MsgPackApplyAnnotation {
 	/**
 	 * Applies targeted {@link MsgPackApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<MsgPackApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApiApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApiApplyAnnotation.java
index 815731d5a3..c9f33e259e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApiApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/oapi/annotation/OpenApiApplyAnnotation.java
@@ -40,7 +40,9 @@ public class OpenApiApplyAnnotation {
 	/**
 	 * Applies targeted {@link OpenApiApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<OpenApiApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parquet/ParquetParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parquet/ParquetParserSession.java
index b24993a2fa..5c27f805b0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parquet/ParquetParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parquet/ParquetParserSession.java
@@ -705,7 +705,9 @@ public class ParquetParserSession extends InputStreamParserSession {
 	 * {@code stacks[0]} is the outermost list (what will be placed in the row),
 	 * {@code stacks[N-1]} is the innermost list being appended to.
 	 */
-	@SuppressWarnings({"unchecked"}) // Generic array creation for stacks
+	@SuppressWarnings({
+		"unchecked" // Generic array creation for stacks.
+	})
 	private static List<Object> reconstructNestedListColumn(List<Object[]> flattened, int numRows, int depth, int maxDef) {
 		var result = new ArrayList<>(numRows);
 		var stacks = new ArrayList[depth];
@@ -1185,7 +1187,9 @@ public class ParquetParserSession extends InputStreamParserSession {
 	 * Replaces keys equal to {@link ParquetParser#nullKeyString} (default <js>"&lt;NULL&gt;"</js>)
 	 * with actual <jk>null</jk> in maps. Enables round-trip of maps with null keys in flat (column-per-key) format.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: Parquet schema type is verified at parse time.
+	})
 	private void replaceNullKeySentinel(Object obj) {
 		if (obj == null)
 			return;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parquet/ParquetSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parquet/ParquetSerializerSession.java
index 09a98214d8..c29296ed27 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parquet/ParquetSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parquet/ParquetSerializerSession.java
@@ -257,7 +257,9 @@ public class ParquetSerializerSession extends OutputStreamSerializerSession {
 	}
 
 	/** Simple bean for wrapping non-bean values (Map is not convertible to BeanMap). */
-	@SuppressWarnings("java:S1104") // Public field required for Parquet schema
+	@SuppressWarnings({
+		"java:S1104" // Public field required for Parquet schema
+	})
 	public static class ValueHolder {
 		/** The wrapped value. */
 		public Object value;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parquet/annotation/ParquetApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parquet/annotation/ParquetApplyAnnotation.java
index f9616869e9..c6f9e56125 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parquet/annotation/ParquetApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parquet/annotation/ParquetApplyAnnotation.java
@@ -40,7 +40,9 @@ public class ParquetApplyAnnotation {
 	/**
 	 * Applies targeted {@link ParquetApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<ParquetApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
index 4b2c06722a..9a11862089 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
@@ -59,7 +59,9 @@ import org.apache.juneau.commons.bean.BeanPropertyMeta;
  * </ul>
  */
 @SuppressWarnings({
-	"java:S115" // Constants use UPPER_snakeCase convention
+	"java:S115",  // Constants use UPPER_snakeCase convention
+	"rawtypes",   // Raw types necessary for generic type handling throughout parser session
+	"unchecked"   // Type erasure requires unchecked casts throughout parser session
 })
 public class ParserSession extends MarshallingSession {
 
@@ -230,10 +232,6 @@ public class ParserSession extends MarshallingSession {
 	 * @param name The name to set.
 	 * @throws ExecutableException Exception occurred on invoked constructor/method/field.
 	 */
-	@SuppressWarnings({
-		"rawtypes",  // Raw types necessary for generic name property handling
-		"unchecked"  // Type erasure requires unchecked operations
-	})
 	protected static final void setName(ClassMeta<?> cm, Object o, Object name) throws ExecutableException {
 		if (nn(cm)) {
 			Property m = cm.getNameProperty();
@@ -251,10 +249,6 @@ public class ParserSession extends MarshallingSession {
 	 * @param parent The parent to set.
 	 * @throws ExecutableException Exception occurred on invoked constructor/method/field.
 	 */
-	@SuppressWarnings({
-		"unchecked", // Type erasure requires unchecked operations
-		"rawtypes"   // Raw types necessary for generic parent property handling
-	})
 	protected static final void setParent(ClassMeta<?> cm, Object o, Object parent) throws ExecutableException {
 		if (cm == null)
 			return;
@@ -331,9 +325,6 @@ public class ParserSession extends MarshallingSession {
 	 * @param c The listener class to cast to.
 	 * @return The listener associated with this session, or <jk>null</jk> if there is no listener.
 	 */
-	@SuppressWarnings({
-		"unchecked" // Type erasure requires cast to T for listener retrieval
-	})
 	public <T extends ParserListener> T getListener(Class<T> c) {
 		return (T)listener;
 	}
@@ -504,9 +495,6 @@ public class ParserSession extends MarshallingSession {
 	 * @see MarshallingSession#getClassMeta(Type,Type...) for argument syntax for maps and collections.
 	 * @throws IOException Thrown by the underlying stream.
 	 */
-	@SuppressWarnings({
-		"unchecked" // Type erasure requires cast to T for generic type parsing
-	})
 	public final <T> T parse(Object input, Type type, Type...args) throws ParseException, IOException {
 		try (var p = createPipe(input)) {
 			return (T)parseInner(p, getClassMeta(type, args));
@@ -613,9 +601,6 @@ public class ParserSession extends MarshallingSession {
 	 * @throws ParseException Malformed input encountered.
 	 * @see MarshallingSession#getClassMeta(Type,Type...) for argument syntax for maps and collections.
 	 */
-	@SuppressWarnings({
-		"unchecked" // Type erasure requires cast to T for generic type parsing
-	})
 	public final <T> T parse(String input, Type type, Type...args) throws ParseException {
 		try (var p = createPipe(input)) {
 			return (T)parseInner(p, getClassMeta(type, args));
@@ -813,9 +798,6 @@ public class ParserSession extends MarshallingSession {
 	 * @throws ParseException If a parse error occurs.
 	 * @throws IOException If an I/O error occurs.
 	 */
-	@SuppressWarnings({
-		"unchecked" // Unchecked cast from Object to T for consumer elements
-	})
 	protected <T> void doParseToBeanConsumer(ParserPipe pipe, BeanConsumer<T> consumer, Class<T> elementType) throws ParseException, IOException {
 		List<T> list = (List<T>) doParse(pipe, getClassMeta(List.class, elementType));
 		if (list == null)
@@ -893,9 +875,6 @@ public class ParserSession extends MarshallingSession {
 	 * @throws ParseException Malformed input encountered.
 	 * @throws ExecutableException Exception occurred on invoked constructor/method/field.
 	 */
-	@SuppressWarnings({
-		"unchecked" // Type erasure requires cast to T for attribute conversion
-	})
 	protected final <T> T convertAttrToType(Object outer, String s, ClassMeta<T> type) throws ParseException {
 		if (s == null)
 			return null;
@@ -1365,9 +1344,6 @@ public class ParserSession extends MarshallingSession {
 	 * @param o The object to trim.
 	 * @return The trimmed string if it's a string.
 	 */
-	@SuppressWarnings({
-		"unchecked" // Type erasure requires cast to K for trim operation
-	})
 	protected final <K> K trim(K o) {
 		if (isTrimStrings() && o instanceof String o2)
 			return (K)o2.trim();
@@ -1405,10 +1381,6 @@ public class ParserSession extends MarshallingSession {
 	 * @return The swapped object.
 	 * @throws ParseException If swap method threw an exception.
 	 */
-	@SuppressWarnings({
-		"rawtypes",  // Raw types necessary for swap handling
-		"unchecked"  // Type erasure requires unchecked operations
-	})
 	protected Object unswap(ObjectSwap swap, Object o, ClassMeta<?> eType) throws ParseException {
 		try {
 			return swap.unswap(this, o, eType);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
index 017f53312c..49525b1eb3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
@@ -311,7 +311,10 @@ public class ParserSet {
 		 * @param action The action to perform.
 		 * @return This object.
 		 */
-		@SuppressWarnings({"rawtypes","unchecked"})
+		@SuppressWarnings({
+			"rawtypes",  // Raw Consumer type required for generic builder dispatch across parameterized builder hierarchy.
+			"unchecked"  // Cast is safe: caller's Consumer<Parser.Builder<?>> is compatible at runtime.
+		})
 		public Builder forEach(Consumer<Parser.Builder<?>> action) {
 			builders(Parser.Builder.class).forEach((Consumer)action);
 			return this;
@@ -323,7 +326,10 @@ public class ParserSet {
 		 * @param action The action to perform.
 		 * @return This object.
 		 */
-		@SuppressWarnings({"rawtypes","unchecked"})
+		@SuppressWarnings({
+			"rawtypes",  // Raw Consumer type required for generic builder dispatch across parameterized builder hierarchy.
+			"unchecked"  // Cast is safe: caller's Consumer<InputStreamParser.Builder<?>> is compatible at runtime.
+		})
 		public Builder forEachISP(Consumer<InputStreamParser.Builder<?>> action) {
 			return forEach((Class)InputStreamParser.Builder.class, (Consumer)action);
 		}
@@ -334,7 +340,10 @@ public class ParserSet {
 		 * @param action The action to perform.
 		 * @return This object.
 		 */
-		@SuppressWarnings({"rawtypes","unchecked"})
+		@SuppressWarnings({
+			"rawtypes",  // Raw Consumer type required for generic builder dispatch across parameterized builder hierarchy.
+			"unchecked"  // Cast is safe: caller's Consumer<ReaderParser.Builder<?>> is compatible at runtime.
+		})
 		public Builder forEachRP(Consumer<ReaderParser.Builder<?>> action) {
 			return forEach((Class)ReaderParser.Builder.class, (Consumer)action);
 		}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/annotation/ParserConfigAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/annotation/ParserConfigAnnotation.java
index bb00366892..8a0b1d8cae 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/annotation/ParserConfigAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/annotation/ParserConfigAnnotation.java
@@ -38,7 +38,9 @@ public class ParserConfigAnnotation {
 	/**
 	 * Applies {@link ParserConfig} annotations to a {@link org.apache.juneau.parser.InputStreamParser.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class InputStreamParserApply extends AnnotationApplier<ParserConfig,InputStreamParser.Builder> {
 
 		/**
@@ -61,7 +63,10 @@ public class ParserConfigAnnotation {
 	/**
 	 * Applies {@link ParserConfig} annotations to a {@link org.apache.juneau.parser.Parser.Builder}.
 	 */
-	@SuppressWarnings({"unchecked","rawtypes"})
+	@SuppressWarnings({
+		"unchecked", // Raw types required for reflective annotation application.
+		"rawtypes"   // Raw types required for reflective annotation application.
+	})
 	public static class ParserApply extends AnnotationApplier<ParserConfig,Parser.Builder> {
 
 		/**
@@ -88,7 +93,9 @@ public class ParserConfigAnnotation {
 	/**
 	 * Applies {@link ParserConfig} annotations to a {@link org.apache.juneau.parser.ReaderParser.Builder}.
 	 */
-	@SuppressWarnings({"rawtypes"})
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class ReaderParserApply extends AnnotationApplier<ParserConfig,ReaderParser.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainTextApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainTextApplyAnnotation.java
index 0315b8adab..7055a5adbb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainTextApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/plaintext/annotation/PlainTextApplyAnnotation.java
@@ -40,7 +40,9 @@ public class PlainTextApplyAnnotation {
 	/**
 	 * Applies targeted {@link PlainTextApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<PlainTextApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/proto/ProtoParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/proto/ProtoParserSession.java
index d6813115a5..09681bc277 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/proto/ProtoParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/proto/ProtoParserSession.java
@@ -363,8 +363,7 @@ public class ProtoParserSession extends ReaderParserSession {
 		}
 		// String → byte[] dispatch at the collection-element / map-value / top-level call site.
 		// Mirrors the Bug #12 top-level fix in doParse but for the collection-element path that
-		// was intentionally carved out of that turn (see Bug #11/#12 a04-residual note in
-		// todo/TODO-57-format-round-trip-tests.md).  Two routes:
+		// was intentionally carved out of that turn.  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/proto/annotation/ProtoApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/proto/annotation/ProtoApplyAnnotation.java
index 37c8d25fb5..2a423058c2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/proto/annotation/ProtoApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/proto/annotation/ProtoApplyAnnotation.java
@@ -40,7 +40,9 @@ public class ProtoApplyAnnotation {
 	/**
 	 * Applies targeted {@link ProtoApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<ProtoApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
index a7801cb544..52315045a1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
@@ -78,7 +78,9 @@ import org.apache.juneau.commons.bean.BeanPropertyValue;
  * </ul>
  */
 @SuppressWarnings({
-	"java:S115" // Constants use UPPER_snakeCase convention
+	"java:S115",  // Constants use UPPER_snakeCase convention
+	"rawtypes",   // Raw types necessary for generic type handling throughout serializer session
+	"unchecked"   // Type erasure requires unchecked casts throughout serializer session
 })
 public class SerializerSession extends MarshallingTraverseSession {
 
@@ -566,9 +568,7 @@ public class SerializerSession extends MarshallingTraverseSession {
 	 * @param consumer The map entry consumer.
 	 */
 	@SuppressWarnings({
-		"unchecked", // Type erasure requires unchecked cast
-		"rawtypes",  // Raw types necessary for generic map handling
-		"cast"       // Cast required for generic type safety
+		"cast" // Cast required for generic type safety
 	})
 	public final <K,V> void forEachEntry(Map<K,V> m, Consumer<Map.Entry<K,V>> consumer) {
 		if (m == null || m.isEmpty())
@@ -591,10 +591,6 @@ public class SerializerSession extends MarshallingTraverseSession {
 	 * @param consumer The entry consumer.
 	 * @since 9.2.1
 	 */
-	@SuppressWarnings({
-		"rawtypes",  // Raw types necessary for generic streamable handling
-		"unchecked"  // Type erasure requires unchecked operations
-	})
 	public final void forEachStreamableEntry(Object o, ClassMeta<?> type, Consumer consumer) {
 		if (o == null)
 			return;
@@ -663,9 +659,6 @@ public class SerializerSession extends MarshallingTraverseSession {
 	 * @param c The listener class to cast to.
 	 * @return The listener associated with this session, or <jk>null</jk> if there is no listener.
 	 */
-	@SuppressWarnings({
-		"unchecked" // Type erasure requires cast to T for listener retrieval
-	})
 	public <T extends SerializerListener> T getListener(Class<T> c) {
 		return (T)listener;
 	}
@@ -1067,10 +1060,6 @@ public class SerializerSession extends MarshallingTraverseSession {
 	 * @return The generalized object, or <jk>null</jk> if the object is <jk>null</jk>.
 	 * @throws SerializeException If a problem occurred trying to convert the output.
 	 */
-	@SuppressWarnings({
-		"rawtypes",  // Raw types necessary for swap handling
-		"unchecked"  // Type erasure requires unchecked operations
-	})
 	protected final Object generalize(Object o, ClassMeta<?> type) throws SerializeException {
 		try {
 			if (o == null)
@@ -1439,10 +1428,6 @@ public class SerializerSession extends MarshallingTraverseSession {
 	 * @return The swapped object.
 	 * @throws SerializeException If swap method threw an exception.
 	 */
-	@SuppressWarnings({
-		"rawtypes",  // Raw types necessary for swap handling
-		"unchecked"  // Type erasure requires unchecked operations
-	})
 	protected Object swap(ObjectSwap swap, Object o) throws SerializeException {
 		try {
 			if (swap == null)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
index 7fe870630b..f60c1636e2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
@@ -308,7 +308,10 @@ public class SerializerSet {
 		 * @param action The action to perform.
 		 * @return This object.
 		 */
-		@SuppressWarnings({"rawtypes","unchecked"})
+		@SuppressWarnings({
+			"rawtypes",  // Raw Consumer type required for generic builder dispatch across parameterized builder hierarchy.
+			"unchecked"  // Cast is safe: caller's Consumer<Serializer.Builder<?>> is compatible at runtime.
+		})
 		public Builder forEach(Consumer<Serializer.Builder<?>> action) {
 			builders(Serializer.Builder.class).forEach((Consumer)action);
 			return this;
@@ -320,7 +323,10 @@ public class SerializerSet {
 		 * @param action The action to perform.
 		 * @return This object.
 		 */
-		@SuppressWarnings({"rawtypes","unchecked"})
+		@SuppressWarnings({
+			"rawtypes",  // Raw Consumer type required for generic builder dispatch across parameterized builder hierarchy.
+			"unchecked"  // Cast is safe: caller's Consumer<OutputStreamSerializer.Builder<?>> is compatible at runtime.
+		})
 		public Builder forEachOSS(Consumer<OutputStreamSerializer.Builder<?>> action) {
 			return forEach((Class)OutputStreamSerializer.Builder.class, (Consumer)action);
 		}
@@ -331,7 +337,10 @@ public class SerializerSet {
 		 * @param action The action to perform.
 		 * @return This object.
 		 */
-		@SuppressWarnings({"rawtypes","unchecked"})
+		@SuppressWarnings({
+			"rawtypes",  // Raw Consumer type required for generic builder dispatch across parameterized builder hierarchy.
+			"unchecked"  // Cast is safe: caller's Consumer<WriterSerializer.Builder<?>> is compatible at runtime.
+		})
 		public Builder forEachWS(Consumer<WriterSerializer.Builder<?>> action) {
 			return forEach((Class)WriterSerializer.Builder.class, (Consumer)action);
 		}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfigAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfigAnnotation.java
index 1221e18ef5..eb621d9509 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfigAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/annotation/SerializerConfigAnnotation.java
@@ -38,7 +38,9 @@ public class SerializerConfigAnnotation {
 	/**
 	 * Applies {@link SerializerConfig} annotations to a {@link org.apache.juneau.serializer.OutputStreamSerializer.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class OutputStreamSerializerApply extends AnnotationApplier<SerializerConfig,OutputStreamSerializer.Builder> {
 
 		/**
@@ -61,7 +63,10 @@ public class SerializerConfigAnnotation {
 	/**
 	 * Applies {@link SerializerConfig} annotations to a {@link org.apache.juneau.serializer.Serializer.Builder}.
 	 */
-	@SuppressWarnings({"unchecked","rawtypes"})
+	@SuppressWarnings({
+		"unchecked", // Raw types required for reflective annotation application.
+		"rawtypes"   // Raw types required for reflective annotation application.
+	})
 	public static class SerializerApply extends AnnotationApplier<SerializerConfig,Serializer.Builder> {
 
 		/**
@@ -99,7 +104,9 @@ public class SerializerConfigAnnotation {
 	/**
 	 * Applies {@link SerializerConfig} annotations to a {@link org.apache.juneau.serializer.WriterSerializer.Builder}.
 	 */
-	@SuppressWarnings({"rawtypes"})
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class WriterSerializerApply extends AnnotationApplier<SerializerConfig,WriterSerializer.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlApplyAnnotation.java
index 33e464191e..c4b8963ebc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/annotation/SoapXmlApplyAnnotation.java
@@ -33,7 +33,9 @@ public class SoapXmlApplyAnnotation {
 
 	private SoapXmlApplyAnnotation() {}
 
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<SoapXmlApply,Context.Builder> {
 
 		public Applier(VarResolverSession vr) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseEventReader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseEventReader.java
index 8e606eff49..0375999469 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseEventReader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseEventReader.java
@@ -59,7 +59,9 @@ import java.util.*;
 })
 public class SseEventReader implements Iterator<SseEvent>, Closeable {
 
-	@SuppressWarnings("java:S115") // Match AssertionUtils arg-name style used throughout Juneau.
+	@SuppressWarnings({
+		"java:S115" // Match AssertionUtils arg-name style used throughout Juneau.
+	})
 	private static final String ARG_in = "in";
 
 	/** UTF-8 BOM character that must be stripped exactly once from the start of an SSE stream. */
@@ -233,7 +235,9 @@ public class SseEventReader implements Iterator<SseEvent>, Closeable {
 		}
 	}
 
-	@SuppressWarnings("java:S3776") // SSE line parsing is a deliberate lexical state machine.
+	@SuppressWarnings({
+		"java:S3776" // SSE line parsing is a deliberate lexical state machine.
+	})
 	private String readLine() throws IOException {
 		var sb = new StringBuilder();
 		int c;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseParserSession.java
index f2268ac232..0fb3e9da0b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseParserSession.java
@@ -41,7 +41,9 @@ import org.apache.juneau.parser.*;
 })
 public class SseParserSession extends ReaderParserSession {
 
-	@SuppressWarnings("java:S115") // Match AssertionUtils arg-name style used throughout Juneau.
+	@SuppressWarnings({
+		"java:S115" // Match AssertionUtils arg-name style used throughout Juneau.
+	})
 	private static final String ARG_ctx = "ctx";
 
 	/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseSerializer.java
index 7c8de6479e..ba2a596b3c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseSerializer.java
@@ -60,7 +60,9 @@ import org.apache.juneau.serializer.*;
 })
 public class SseSerializer extends WriterSerializer {
 
-	@SuppressWarnings("java:S115") // Match AssertionUtils arg-name style used throughout Juneau.
+	@SuppressWarnings({
+		"java:S115" // Match AssertionUtils arg-name style used throughout Juneau.
+	})
 	private static final String ARG_w = "w";
 
 	/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseSerializerSession.java
index 8950c026f1..6a0214555a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/sse/SseSerializerSession.java
@@ -40,7 +40,9 @@ import org.apache.juneau.serializer.*;
 })
 public class SseSerializerSession extends WriterSerializerSession {
 
-	@SuppressWarnings("java:S115") // Match AssertionUtils arg-name style used throughout Juneau.
+	@SuppressWarnings({
+		"java:S115" // Match AssertionUtils arg-name style used throughout Juneau.
+	})
 	private static final String ARG_ctx = "ctx";
 
 	/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
index d255dcc55a..b54d76f57b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
@@ -390,7 +390,10 @@ public class UonParserSession extends ReaderParserSession implements HttpPartPar
 			else
 				throw new ParseException(this, "Class ''{0}'' could not be instantiated.  Reason: ''{1}''", cn(sType), sType.getNotABeanReason());
 		} else if (c == 'n') {
-			@SuppressWarnings("unused") int ignored = r.read();
+			@SuppressWarnings({
+				"unused" // Intentionally unused; variable/parameter is required by the interface contract
+			})
+			int ignored = r.read();
 			parseNull(r);
 		} else {
 			throw new ParseException(this, "Class ''{0}'' could not be instantiated.  Reason: ''{1}''", cn(sType), sType.getNotABeanReason());
@@ -572,7 +575,10 @@ public class UonParserSession extends ReaderParserSession implements HttpPartPar
 			else
 				throw new ParseException(this, "Could not find '(' marking beginning of collection.");
 		} else {
-			@SuppressWarnings("unused") int ignored = r.read();
+			@SuppressWarnings({
+				"unused" // Intentionally unused; variable/parameter is required by the interface contract
+			})
+			int ignored = r.read();
 		}
 
 		if (isInParens) {
@@ -587,7 +593,10 @@ public class UonParserSession extends ReaderParserSession implements HttpPartPar
 					if (c == ')') {
 						if (state == S2) {
 							l.add((E)parseAnything(type.isArgs() ? type.getArg(argIndex++) : type.getElementType(), r.unread(), l, false, pMeta));
-							@SuppressWarnings("unused") int ignored = r.read();
+							@SuppressWarnings({
+								"unused" // Intentionally unused; variable/parameter is required by the interface contract
+							})
+							int ignored = r.read();
 						}
 						return l;
 					} else if (Character.isWhitespace(c)) {
@@ -752,7 +761,10 @@ public class UonParserSession extends ReaderParserSession implements HttpPartPar
 	 */
 	private String parsePString(UonReader r) throws IOException, ParseException {
 
-		@SuppressWarnings("unused") int ignored = r.read();
+		@SuppressWarnings({
+			"unused" // Intentionally unused; variable/parameter is required by the interface contract
+		})
+		int ignored = r.read();
 		r.mark();
 		int c = 0;
 
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonApplyAnnotation.java
index 9b4b9cc7dd..d733ab7933 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonApplyAnnotation.java
@@ -33,7 +33,9 @@ public class UonApplyAnnotation {
 
 	private UonApplyAnnotation() {}
 
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<UonApply,Context.Builder> {
 
 		public Applier(VarResolverSession vr) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonConfigAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonConfigAnnotation.java
index fc4ceb7cb6..3935ae2cc3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonConfigAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/annotation/UonConfigAnnotation.java
@@ -38,7 +38,9 @@ public class UonConfigAnnotation {
 	/**
 	 * Applies {@link UonConfig} annotations to a {@link org.apache.juneau.uon.UonParser.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class ParserApply extends AnnotationApplier<UonConfig,UonParser.Builder> {
 
 		/**
@@ -62,7 +64,9 @@ public class UonConfigAnnotation {
 	/**
 	 * Applies {@link UonConfig} annotations to a {@link org.apache.juneau.uon.UonSerializer.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class SerializerApply extends AnnotationApplier<UonConfig,UonSerializer.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
index 3c5bd7642b..eebe53a671 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java
@@ -164,7 +164,10 @@ public class UrlEncodingParserSession extends UonParserSession {
 
 		int c = r.peekSkipWs();
 		if (c == '?') {
-			@SuppressWarnings("unused") int ignored = r.read();
+			@SuppressWarnings({
+				"unused" // Intentionally unused; variable/parameter is required by the interface contract
+			})
+			int ignored = r.read();
 		}
 
 		Object o;
@@ -226,7 +229,7 @@ public class UrlEncodingParserSession extends UonParserSession {
 	}
 
 	@SuppressWarnings({
-		"java:S1168",    // TODO: null when currAttr is '%00'. Parser state machine.
+		"java:S1168",    // Null when currAttr is '%00'. Parser state machine.
 		"java:S2177",    // Intentional: UrlEncodingParserSession provides its own private parseIntoBeanMap() with expanded-params logic
 		"java:S125",     // State-machine comments (S1: ..., S2: ...)
 		"java:S2583",    // State variables persist across loop iterations
@@ -481,7 +484,10 @@ public class UrlEncodingParserSession extends UonParserSession {
 	protected <K,V> Map<K,V> doParseIntoMap(ParserPipe pipe, Map<K,V> m, Type keyType, Type valueType) throws Exception {
 		try (var r = getUonReader(pipe, true)) {
 			if (r.peekSkipWs() == '?') {
-				@SuppressWarnings("unused") int ignored = r.read();
+				@SuppressWarnings({
+					"unused" // Intentionally unused; variable/parameter is required by the interface contract
+				})
+				int ignored = r.read();
 			}
 			m = parseIntoMap2(r, m, getClassMeta(Map.class, keyType, valueType), null);
 			return m;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingApplyAnnotation.java
index 18661906c0..4f6017476c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingApplyAnnotation.java
@@ -40,7 +40,9 @@ public class UrlEncodingApplyAnnotation {
 	/**
 	 * Applies targeted {@link UrlEncodingApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<UrlEncodingApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MarshallingContextConverter.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MarshallingContextConverter.java
index 78c991fb84..279e0876f0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MarshallingContextConverter.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MarshallingContextConverter.java
@@ -151,7 +151,9 @@ public class MarshallingContextConverter implements Converter {
 	 * @return The converted object, or <jk>null</jk> if the input object is <jk>null</jk>.
 	 * @throws InvalidDataConversionException If the object cannot be converted to the specified type.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type parameter verified by caller context.
+	})
 	@Override
 	public <T> T to(Object o, Object memberOf, ConverterSession session, Type mainType, Type... args) {
 		var rawType = (Class<T>) (mainType instanceof ParameterizedType pt ? pt.getRawType() : (Class<?>) mainType);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
index c568960aa8..7307106a83 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
@@ -539,7 +539,6 @@ public class XmlParserSession extends ReaderParserSession {
 		int depth = 0;
 		for (var i = 0; i < r.getAttributeCount(); i++) {
 			var a = r.getAttributeLocalName(i);
-			// TODO - Need better handling of namespaces here.
 			if (! isSpecialAttr(a)) {
 				K key = trim(convertAttrToType(m, a, keyType));
 				V value = trim(convertAttrToType(m, r.getAttributeValue(i), valueType));
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlApplyAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlApplyAnnotation.java
index 967607a8d3..ead55464d3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlApplyAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlApplyAnnotation.java
@@ -40,7 +40,9 @@ public class XmlApplyAnnotation {
 	/**
 	 * Applies targeted {@link XmlApply} annotations to a {@link org.apache.juneau.Context.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class Applier extends AnnotationApplier<XmlApply,Context.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlConfigAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlConfigAnnotation.java
index baa075f54e..e3fa2bbfc3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlConfigAnnotation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/annotation/XmlConfigAnnotation.java
@@ -38,7 +38,10 @@ public class XmlConfigAnnotation {
 	/**
 	 * Applies {@link XmlConfig} annotations to a {@link org.apache.juneau.xml.XmlParser.Builder}.
 	 */
-	@SuppressWarnings({"unchecked","rawtypes"})
+	@SuppressWarnings({
+		"unchecked", // Raw types required for reflective annotation application.
+		"rawtypes"   // Raw types required for reflective annotation application.
+	})
 	public static class ParserApply extends AnnotationApplier<XmlConfig,XmlParser.Builder> {
 
 		/**
@@ -65,7 +68,9 @@ public class XmlConfigAnnotation {
 	/**
 	 * Applies {@link XmlConfig} annotations to a {@link org.apache.juneau.xml.XmlSerializer.Builder}.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required for reflective annotation application.
+	})
 	public static class SerializerApply extends AnnotationApplier<XmlConfig,XmlSerializer.Builder> {
 
 		/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/YamlParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/YamlParserSession.java
index 3535dbe822..128116ebc3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/YamlParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/YamlParserSession.java
@@ -86,7 +86,9 @@ public class YamlParserSession extends ReaderParserSession {
 		return new Builder(ctx);
 	}
 
-	@SuppressWarnings("unused") // Stored for API consistency with Builder.create(YamlParser)
+	@SuppressWarnings({
+		"unused" // Stored for API consistency with Builder.create(YamlParser)
+	})
 	private final YamlParser ctx;
 
 	/**
diff --git a/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/bean/BeanExample.java b/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/bean/BeanExample.java
index 7d15e8d24a..b46b11896a 100644
--- a/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/bean/BeanExample.java
+++ b/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/bean/BeanExample.java
@@ -48,7 +48,9 @@ public class BeanExample {
 	 * @param args Unused.
 	 * @throws Exception Unused.
 	 */
-	@SuppressWarnings("unused")
+	@SuppressWarnings({
+		"unused" // args required by JVM entry-point signature; unused in examples
+	})
 	public static void main(String[] args) throws Exception {
 
 		//Produces
diff --git a/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/bean/atom/AtomJsonExample.java b/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/bean/atom/AtomJsonExample.java
index ecaaf780b4..c8316c2ae6 100644
--- a/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/bean/atom/AtomJsonExample.java
+++ b/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/bean/atom/AtomJsonExample.java
@@ -30,7 +30,9 @@ public class AtomJsonExample {
 	 * @param args Unused.
 	 * @throws Exception Unused.
 	 */
-	@SuppressWarnings("unused")
+	@SuppressWarnings({
+		"unused" // args required by JVM entry-point signature; unused in examples
+	})
 	public static void main(String[] args) throws Exception {
 
 		var feed = AtomFeed.getAtomFeed();
diff --git a/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/bean/atom/AtomXmlExample.java b/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/bean/atom/AtomXmlExample.java
index 96c15f0d60..b58e73ab4b 100644
--- a/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/bean/atom/AtomXmlExample.java
+++ b/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/bean/atom/AtomXmlExample.java
@@ -30,7 +30,9 @@ public class AtomXmlExample {
 	 * @param args Unused.
 	 * @throws Exception Unused.
 	 */
-	@SuppressWarnings("unused")
+	@SuppressWarnings({
+		"unused" // args required by JVM entry-point signature; unused in examples
+	})
 	public static void main(String[] args) throws Exception {
 
 		var feed = AtomFeed.getAtomFeed();
diff --git a/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/oapi/OapiExample.java b/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/oapi/OapiExample.java
index 6dd7a1e126..b0aeed71f9 100644
--- a/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/oapi/OapiExample.java
+++ b/juneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/oapi/OapiExample.java
@@ -36,7 +36,9 @@ public class OapiExample {
 	 * @param args Unused.
 	 * @throws Exception Unused.
 	 */
-	@SuppressWarnings("unused")
+	@SuppressWarnings({
+		"unused" // args required by JVM entry-point signature; unused in examples
+	})
 	public static void main(String[] args) throws Exception {
 
 		var oapiSerializer = OpenApiSerializer.DEFAULT;
diff --git a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HtmlBeansResource.java b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HtmlBeansResource.java
index 743edab595..451823679c 100644
--- a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HtmlBeansResource.java
+++ b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/HtmlBeansResource.java
@@ -58,7 +58,9 @@ import org.apache.juneau.rest.widget.*;
 )
 public class HtmlBeansResource extends BasicRestResource {
 
-	@SuppressWarnings("unused")
+	@SuppressWarnings({
+		"unused" // serialVersionUID required for Serializable compliance; unused in code paths
+	})
 	private static final long serialVersionUID = 1L;
 
 	/**
diff --git a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/UtilityBeansResource.java b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/UtilityBeansResource.java
index 62c2453dd0..04cfe778c0 100644
--- a/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/UtilityBeansResource.java
+++ b/juneau-examples/juneau-examples-rest/src/main/java/org/apache/juneau/examples/rest/UtilityBeansResource.java
@@ -86,7 +86,9 @@ public class UtilityBeansResource extends BasicRestResource {
 		}
 	}
 
-	@SuppressWarnings("unused")
+	@SuppressWarnings({
+		"unused" // serialVersionUID required for Serializable compliance; unused in code paths
+	})
 	private static final long serialVersionUID = 1L;
 
 	/**
diff --git a/juneau-microservice/juneau-microservice-tomcat/src/main/java/org/apache/juneau/microservice/tomcat/TomcatServerComponent.java b/juneau-microservice/juneau-microservice-tomcat/src/main/java/org/apache/juneau/microservice/tomcat/TomcatServerComponent.java
index 706b316be3..7109c8de11 100644
--- a/juneau-microservice/juneau-microservice-tomcat/src/main/java/org/apache/juneau/microservice/tomcat/TomcatServerComponent.java
+++ b/juneau-microservice/juneau-microservice-tomcat/src/main/java/org/apache/juneau/microservice/tomcat/TomcatServerComponent.java
@@ -27,6 +27,7 @@ import static org.apache.juneau.commons.utils.Utils.*;
 import java.io.*;
 import java.net.*;
 import java.nio.file.*;
+import java.nio.file.attribute.*;
 import java.util.*;
 import java.util.concurrent.atomic.*;
 import java.util.logging.*;
@@ -484,7 +485,20 @@ public class TomcatServerComponent implements MicroserviceListener {
 			return f;
 		}
 		try {
-			var f = Files.createTempDirectory("juneau-tomcat").toFile();
+			Path dirPath;
+			try {
+				// Explicitly restrict to owner-only access (rwx------) on POSIX file systems.
+				Set<PosixFilePermission> ownerOnly = EnumSet.of(
+					PosixFilePermission.OWNER_READ,
+					PosixFilePermission.OWNER_WRITE,
+					PosixFilePermission.OWNER_EXECUTE);
+				dirPath = Files.createTempDirectory("juneau-tomcat",
+					PosixFilePermissions.asFileAttribute(ownerOnly));
+			} catch (UnsupportedOperationException e) {
+				// Non-POSIX filesystem (e.g. Windows) — fall back to default temp-dir creation.
+				dirPath = Files.createTempDirectory("juneau-tomcat");
+			}
+			var f = dirPath.toFile();
 			ownsBaseDir.set(true);
 			baseDir.set(f);
 			return f;
diff --git a/juneau-microservice/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java b/juneau-microservice/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
index ee3d8c871a..1a3765f9be 100755
--- a/juneau-microservice/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
+++ b/juneau-microservice/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
@@ -179,7 +179,7 @@ public class DirectoryResource extends BasicRestServlet {
 		 * @return Child files, or <jk>null</jk> when this is a file or includeChildren is false.
 		 */
 		@SuppressWarnings({
-			"java:S1168"     // TODO: Intentional null when file or !includeChildren. Consider empty set.
+			"java:S1168"     // Intentional null when file or !includeChildren.
 		})
 		public Set<FileResource> getFiles() {
 			if (f.isFile() || ! includeChildren)
diff --git a/juneau-microservice/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java b/juneau-microservice/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
index 6b177b82f1..7992acc8d9 100644
--- a/juneau-microservice/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
+++ b/juneau-microservice/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.java
@@ -100,14 +100,14 @@ public class LogEntryFormatter extends Formatter {
 
 		// @formatter:off
 		format = format
-			.replaceAll("\\{date\\}", "%1\\$s")
-			.replaceAll("\\{class\\}", "%2\\$s")
-			.replaceAll("\\{method\\}", "%3\\$s")
-			.replaceAll("\\{logger\\}", "%4\\$s")
-			.replaceAll("\\{level\\}", "%5\\$s")
-			.replaceAll("\\{msg\\}", "%6\\$s")
-			.replaceAll("\\{threadid\\}", "%7\\$s")
-			.replaceAll("\\{exception\\}", "%8\\$s");
+			.replace("{date}", "%1$s")
+			.replace("{class}", "%2$s")
+			.replace("{method}", "%3$s")
+			.replace("{logger}", "%4$s")
+			.replace("{level}", "%5$s")
+			.replace("{msg}", "%6$s")
+			.replace("{threadid}", "%7$s")
+			.replace("{exception}", "%8$s");
 		// @formatter:on
 
 		this.format = format;
diff --git a/juneau-microservice/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java b/juneau-microservice/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
index c38e028bb7..67f6985a70 100644
--- a/juneau-microservice/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
+++ b/juneau-microservice/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
@@ -103,9 +103,6 @@ public class LogsResource extends BasicRestServlet {
 	/** File or directory details for REST response. */
 	@Response(schema = @Schema(description = "File or directory details"))
 	@BeanType(properties = "type,name,size,lastModified,actions,files")
-	@SuppressWarnings({
-		"java:S1135" // TODO in getFiles() - will address later
-	})
 	public static class FileResource {
 		static final FileFilter FILE_FILTER = f2 -> f2.isDirectory() || f2.getName().endsWith(".log");
 		static final Comparator<FileResource> FILE_COMPARATOR = (o1, o2) -> {
@@ -161,7 +158,7 @@ public class LogsResource extends BasicRestServlet {
 		 * @return Child files, or <jk>null</jk> when this is a file or includeChildren is false.
 		 */
 		@SuppressWarnings({
-			"java:S1168"     // TODO: Intentional null when file or !includeChildren. Consider empty set.
+			"java:S1168"     // Intentional null when file or !includeChildren.
 		})
 		public Set<FileResource> getFiles() {
 			if (f.isFile() || ! includeChildren)
diff --git a/juneau-rest/juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/remote/RemoteOperationArg.java b/juneau-rest/juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/remote/RemoteOperationArg.java
index de4cf943c6..eee0a1a747 100644
--- a/juneau-rest/juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/remote/RemoteOperationArg.java
+++ b/juneau-rest/juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/remote/RemoteOperationArg.java
@@ -65,7 +65,9 @@ public class RemoteOperationArg {
 
 	private final HttpPartSchema schema;
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	RemoteOperationArg(int index, HttpPartType partType, HttpPartSchema schema) {
 		this.index = index;
 		this.partType = partType;
@@ -73,7 +75,9 @@ public class RemoteOperationArg {
 		this.schema = schema;
 	}
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	RemoteOperationArg(int index, HttpPartType partType, HttpPartSchema schema, String overrideName) {
 		this.index = index;
 		this.partType = partType;
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/JavaHttpTransport.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/JavaHttpTransport.java
index 20a7935357..efee674505 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/JavaHttpTransport.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/JavaHttpTransport.java
@@ -69,13 +69,17 @@ public final class JavaHttpTransport implements HttpTransport {
 	 *
 	 * @return A new instance. Never <jk>null</jk>.
 	 */
-	@SuppressWarnings("resource")
+	@SuppressWarnings({
+		"resource" // Not owned here; lifecycle is managed by the surrounding context
+	})
 	public static JavaHttpTransport create() {
 		return builder().build();
 	}
 
 	@Override /* HttpTransport */
-	@SuppressWarnings("resource")
+	@SuppressWarnings({
+		"resource" // Not owned here; lifecycle is managed by the surrounding context
+	})
 	public TransportResponse execute(TransportRequest request) throws TransportException {
 		var jdkRequest = buildJdkRequest(request);
 		HttpResponse<InputStream> jdkResponse;
@@ -136,7 +140,9 @@ public final class JavaHttpTransport implements HttpTransport {
 		});
 	}
 
-	@SuppressWarnings("resource")
+	@SuppressWarnings({
+		"resource" // Not owned here; lifecycle is managed by the surrounding context
+	})
 	private static TransportResponse buildTransportResponse(HttpResponse<InputStream> jdkResponse) {
 		var builder = TransportResponse.builder()
 			.statusCode(jdkResponse.statusCode())
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/JavaHttpTransportBuilder.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/JavaHttpTransportBuilder.java
index eec03dd610..d5c63089f3 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/JavaHttpTransportBuilder.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/JavaHttpTransportBuilder.java
@@ -55,7 +55,9 @@ public final class JavaHttpTransportBuilder {
 	 *
 	 * @return A new instance. Never <jk>null</jk>.
 	 */
-	@SuppressWarnings("resource")
+	@SuppressWarnings({
+		"resource" // Not owned here; lifecycle is managed by the surrounding context
+	})
 	public JavaHttpTransport build() {
 		return new JavaHttpTransport(this);
 	}
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/JavaHttpTransportProvider.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/JavaHttpTransportProvider.java
index a1702f3513..b5363366f7 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/JavaHttpTransportProvider.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/JavaHttpTransportProvider.java
@@ -49,7 +49,9 @@ public final class JavaHttpTransportProvider implements HttpTransportProvider {
 	}
 
 	@Override /* HttpTransportProvider */
-	@SuppressWarnings("resource")
+	@SuppressWarnings({
+		"resource" // Not owned here; lifecycle is managed by the surrounding context
+	})
 	public HttpTransport create() {
 		return JavaHttpTransport.create();
 	}
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteClient.java
index be336ba9ad..34a26801c5 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteClient.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteClient.java
@@ -103,7 +103,9 @@ public final class RemoteClient {
 	 * @return A proxy instance. Never <jk>null</jk>.
 	 * @throws IllegalArgumentException If {@code iface} is not an interface or not annotated with {@link Remote}.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	public <T> T create(Class<T> iface) {
 		assertArgNotNull("iface", iface);
 		var meta = RrpcInterfaceMeta.of(iface);
diff --git a/juneau-rest/juneau-rest-common-classic/src/main/java/org/apache/juneau/http/classic/header/SerializedHeader.java b/juneau-rest/juneau-rest-common-classic/src/main/java/org/apache/juneau/http/classic/header/SerializedHeader.java
index 1c15a46547..893b3df383 100644
--- a/juneau-rest/juneau-rest-common-classic/src/main/java/org/apache/juneau/http/classic/header/SerializedHeader.java
+++ b/juneau-rest/juneau-rest-common-classic/src/main/java/org/apache/juneau/http/classic/header/SerializedHeader.java
@@ -27,8 +27,6 @@ import org.apache.juneau.oapi.*;
 import org.apache.juneau.serializer.*;
 
 /**
- * TODO
- *
  * <h5 class='section'>See Also:</h5><ul>
  * 	<li class='link'><a class="doclink" href="https://juneau.apache.org/docs/topics/JuneauRestCommonBasics">juneau-rest-common Basics</a>
  * </ul>
diff --git a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/annotation/TagAnnotation.java b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/annotation/TagAnnotation.java
index f1d10ade05..981e4ded13 100644
--- a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/annotation/TagAnnotation.java
+++ b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/annotation/TagAnnotation.java
@@ -24,7 +24,7 @@ import org.apache.juneau.annotation.*;
 import org.apache.juneau.commons.annotation.*;
 
 /**
- * Utility classes and methods for the {@link Tag @XXX} annotation.
+ * Utility classes and methods for the {@link Tag @Tag} annotation.
  *
  */
 public class TagAnnotation {
diff --git a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BasicHttpException.java b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BasicHttpException.java
index e3fc9ca0b4..87d9273f22 100644
--- a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BasicHttpException.java
+++ b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BasicHttpException.java
@@ -47,7 +47,11 @@ import org.apache.juneau.http.header.*;
  *
  * @since 9.2.1
  */
-@SuppressWarnings({"java:S3008", "java:S1948", "java:S1165"})
+@SuppressWarnings({
+	"java:S3008", // Concrete subclasses use UPPER_CASE singleton instance constants (e.g., INSTANCE fields).
+	"java:S1948", // HttpHeaderList is not Java-serializable; HTTP exceptions are not designed for Java serialization transport.
+	"java:S1165"  // Mutable exception fields are intentional: HTTP exceptions support builder-style fluent setters.
+})
 public class BasicHttpException extends RuntimeException implements HttpResponseMessage {
 
 	private static final long serialVersionUID = 1L;
diff --git a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
index 943c797789..fb74448440 100644
--- a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
+++ b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/RequestBeanPropertyMeta.java
@@ -81,7 +81,9 @@ public class RequestBeanPropertyMeta {
 
 	private final HttpPartSchema schema;
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	RequestBeanPropertyMeta(Builder b, HttpPartSerializer serializer, HttpPartParser parser) {
 		partType = b.partType;
 		schema = b.schema;
diff --git a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanPropertyMeta.java b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanPropertyMeta.java
index 59a167db4c..ec91a0b0cb 100644
--- a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanPropertyMeta.java
+++ b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanPropertyMeta.java
@@ -82,7 +82,9 @@ public class ResponseBeanPropertyMeta {
 
 	private final HttpPartSchema schema;
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	ResponseBeanPropertyMeta(Builder b, Optional<HttpPartSerializer> serializer, Optional<HttpPartParser> parser) {
 		partType = b.partType;
 		schema = b.schema;
diff --git a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/mcp/McpDispatcher.java b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/mcp/McpDispatcher.java
index 5fb9816a99..ac2d411e8d 100644
--- a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/mcp/McpDispatcher.java
+++ b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/mcp/McpDispatcher.java
@@ -218,7 +218,9 @@ public class McpDispatcher {
 		return strParam(asMap(params), "cursor");
 	}
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type parameter verified by MCP protocol contract.
+	})
 	private static Map<String, Object> asMap(Object params) {
 		if (params == null)
 			return Map.of();
@@ -232,7 +234,9 @@ public class McpDispatcher {
 		return v == null ? null : v.toString();
 	}
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type parameter verified by MCP protocol contract.
+	})
 	private static Map<String, Object> mapParam(Map<String, Object> p, String key) {
 		var v = p.get(key);
 		if (v == null)
diff --git a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/mcp/McpEndpoint.java b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/mcp/McpEndpoint.java
index 165fe0ee29..e200b8c091 100644
--- a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/mcp/McpEndpoint.java
+++ b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/mcp/McpEndpoint.java
@@ -62,7 +62,9 @@ public interface McpEndpoint {
 	 * @param restReq The current REST request.
 	 * @return The response, or {@code null} for notifications.
 	 */
-	@SuppressWarnings("resource") // request-scoped scratch BasicBeanStore; lifetime is bounded by this handler invocation, no foreign resources are captured
+	@SuppressWarnings({
+		"resource" // Request-scoped scratch BasicBeanStore; lifetime is bounded by this handler invocation, no foreign resources are captured.
+	})
 	@RestPost(path = "/mcp")
 	default JsonRpcResponse handleMcpRequest(@Content JsonRpcRequest req, RestRequest restReq) {
 		var bs = new BasicBeanStore(restReq.getContext().getBeanStore())
diff --git a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/mcp/McpRestServlet.java b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/mcp/McpRestServlet.java
index 0e6afed8cf..b091217a5c 100644
--- a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/mcp/McpRestServlet.java
+++ b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/mcp/McpRestServlet.java
@@ -94,7 +94,9 @@ public abstract class McpRestServlet extends BasicRestServlet {
 	 * @return The JSON-RPC response, or {@code null} for notifications (which the framework renders as an
 	 *         empty body).
 	 */
-	@SuppressWarnings("resource") // request-scoped scratch BasicBeanStore; lifetime is bounded by this handler invocation, no foreign resources are captured
+	@SuppressWarnings({
+		"resource" // Request-scoped scratch BasicBeanStore; lifetime is bounded by this handler invocation, no foreign resources are captured.
+	})
 	@RestPost(path = "/")
 	public JsonRpcResponse handleMcp(@Content JsonRpcRequest req, RestRequest restReq) {
 		var bs = new BasicBeanStore(restReq.getContext().getBeanStore())
diff --git a/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/BoundedLruTokenCache.java b/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/BoundedLruTokenCache.java
index c1f07baad0..e2d666f0f3 100644
--- a/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/BoundedLruTokenCache.java
+++ b/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/BoundedLruTokenCache.java
@@ -31,7 +31,7 @@ import java.util.*;
  *
  * <ul>
  * 	<li><b>Size cap</b> &mdash; when the entry count would exceed {@code maxEntries}, the least-recently-used
- * 		entry is removed before the new entry is inserted.  Default {@code maxEntries=1000} (per OQA Q1).
+ * 		entry is removed before the new entry is inserted.  Default {@code maxEntries=1000}.
  * 	<li><b>TTL eviction</b> &mdash; on lookup, an entry whose stored expiry instant has passed (relative to
  * 		the supplied {@code now} clock) is removed and treated as a miss.
  * </ul>
@@ -40,7 +40,7 @@ import java.util.*;
  */
 public class BoundedLruTokenCache implements TokenCache {
 
-	/** Default maximum entry count (per OQA Q1). */
+	/** Default maximum entry count. */
 	public static final int DEFAULT_MAX_ENTRIES = 1000;
 
 	/**
diff --git a/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/OAuthIntrospectionValidator.java b/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/OAuthIntrospectionValidator.java
index 3df256cc98..624b8ffa3d 100644
--- a/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/OAuthIntrospectionValidator.java
+++ b/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/OAuthIntrospectionValidator.java
@@ -42,7 +42,7 @@ import com.nimbusds.oauth2.sdk.token.BearerAccessToken;
  *
  * <p>
  * Wraps Nimbus's {@code TokenIntrospectionRequest} / {@code TokenIntrospectionResponse} for the HTTP
- * round-trip and the JSON parsing.  A {@link TokenCache} (default: bounded LRU per OQA Q1) short-circuits
+ * round-trip and the JSON parsing.  A {@link TokenCache} (default: bounded LRU cache) short-circuits
  * the round-trip on repeated lookups within the configured TTL window.
  *
  * <h5 class='topic'>Usage</h5>
@@ -58,9 +58,9 @@ import com.nimbusds.oauth2.sdk.token.BearerAccessToken;
  *
  * <h5 class='topic'>Defaults</h5>
  * <ul>
- * 	<li>Cache TTL: 5 minutes (per OQA Q1), capped at 1 hour.
- * 	<li>Cache size: 1000 entries (per OQA Q1).
- * 	<li>Required scopes: none (per OQA Q6 enforcement lives here, not on the filter).
+ * 	<li>Cache TTL: 5 minutes, capped at 1 hour.
+ * 	<li>Cache size: 1000 entries.
+ * 	<li>Required scopes: none (scope enforcement lives on the validator, not the filter).
  * </ul>
  *
  * <h5 class='section'>See Also:</h5>
@@ -74,10 +74,10 @@ import com.nimbusds.oauth2.sdk.token.BearerAccessToken;
  */
 public class OAuthIntrospectionValidator implements TokenValidator {
 
-	/** Default cache TTL (per OQA Q1). */
+	/** Default cache TTL. */
 	public static final Duration DEFAULT_CACHE_TTL = Duration.ofMinutes(5);
 
-	/** Maximum cache TTL (per OQA Q1). */
+	/** Maximum cache TTL. */
 	public static final Duration MAX_CACHE_TTL = Duration.ofHours(1);
 
 	/**
@@ -182,7 +182,7 @@ public class OAuthIntrospectionValidator implements TokenValidator {
 		}
 
 		/**
-		 * Adds required scopes (per OQA Q6 &mdash; scope enforcement lives on the validator).
+		 * Adds required scopes (scope enforcement lives on the validator, not the filter).
 		 *
 		 * <p>
 		 * If any required scope is missing from the introspection response's {@code scope} claim, the
@@ -216,7 +216,7 @@ public class OAuthIntrospectionValidator implements TokenValidator {
 		 * Sets a callback that customizes the Nimbus {@link HTTPRequest} before it is sent.
 		 *
 		 * <p>
-		 * Per OQA Q2 this is the escape hatch for custom HTTP behavior (proxies, TLS overrides,
+		 * This is the escape hatch for custom HTTP behavior (proxies, TLS overrides,
 		 * timeouts).  The callback is invoked on every introspection call.
 		 *
 		 * @param value The configurator callback.  Must not be <jk>null</jk>.
diff --git a/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/flow/OAuthAuthorizationCodeFlow.java b/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/flow/OAuthAuthorizationCodeFlow.java
index 96bc7d1a77..a468d0655e 100644
--- a/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/flow/OAuthAuthorizationCodeFlow.java
+++ b/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/flow/OAuthAuthorizationCodeFlow.java
@@ -237,7 +237,9 @@ public class OAuthAuthorizationCodeFlow {
 	 * @param codeChallenge The PKCE code challenge.  Must not be <jk>null</jk>.  Always uses S256.
 	 * @return The authorization URL.
 	 */
-	@SuppressWarnings("deprecation")  // Nimbus CodeChallenge overload is deprecated; no simpler alternative yet.
+	@SuppressWarnings({
+		"deprecation" // Nimbus CodeChallenge overload is deprecated; no simpler alternative yet.
+	})
 	public URI buildAuthorizationUrl(String state, CodeChallenge codeChallenge) {
 		assertArgNotNullOrBlank("state", state);
 		assertArgNotNull("codeChallenge", codeChallenge);
@@ -276,7 +278,9 @@ public class OAuthAuthorizationCodeFlow {
 	 * 	parameters.  May be <jk>null</jk>.
 	 * @return The authorization URL.
 	 */
-	@SuppressWarnings("deprecation")  // Nimbus CodeChallenge overload is deprecated; no simpler alternative yet.
+	@SuppressWarnings({
+		"deprecation" // Nimbus CodeChallenge overload is deprecated; no simpler alternative yet.
+	})
 	public URI buildAuthenticationUrl(String state, CodeChallenge codeChallenge, String nonce, Consumer<AuthenticationRequest.Builder> customizer) {
 		assertArgNotNullOrBlank("state", state);
 		assertArgNotNull("codeChallenge", codeChallenge);
diff --git a/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/flow/OAuthResourceOwnerFlow.java b/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/flow/OAuthResourceOwnerFlow.java
index 07920b771a..474179c4fc 100644
--- a/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/flow/OAuthResourceOwnerFlow.java
+++ b/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/flow/OAuthResourceOwnerFlow.java
@@ -42,7 +42,7 @@ import com.nimbusds.oauth2.sdk.id.ClientID;
  *
  * <p>
  * Filed under {@link Deprecated &#64;Deprecated(since = "9.5.0")} from day-1 to surface the warning at IDE
- * compile time, per OQA Q4.  Wraps Nimbus's {@link ResourceOwnerPasswordCredentialsGrant}.
+ * compile time to surface the deprecation warning.  Wraps Nimbus's {@link ResourceOwnerPasswordCredentialsGrant}.
  *
  * @since 9.5.0
  * @deprecated Use {@link OAuthAuthorizationCodeFlow} (with PKCE) wherever possible.  The
diff --git a/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/package-info.java b/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/package-info.java
index 228d7897d2..4630e46924 100644
--- a/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/package-info.java
+++ b/juneau-rest/juneau-rest-server-oauth/src/main/java/org/apache/juneau/rest/auth/oauth/package-info.java
@@ -18,8 +18,8 @@
  * OAuth 2.0 / OIDC integration for the Juneau REST server.
  *
  * <p>
- * Layered on the {@link org.apache.juneau.rest.auth.AuthFilter AuthFilter} framework (TODO-94a) and the
- * {@link org.apache.juneau.rest.auth.TokenValidator TokenValidator} SPI (FINISHED-69).  Wraps Nimbus's
+ * Layered on the {@link org.apache.juneau.rest.auth.AuthFilter AuthFilter} framework and the
+ * {@link org.apache.juneau.rest.auth.TokenValidator TokenValidator} SPI.  Wraps Nimbus's
  * {@code oauth2-oidc-sdk} (Apache 2.0) for the introspection, flow, and discovery wire shapes.
  *
  * <p>
diff --git a/juneau-rest/juneau-rest-server-oidc-rp/src/main/java/org/apache/juneau/rest/auth/oidc/rp/EphemeralStore.java b/juneau-rest/juneau-rest-server-oidc-rp/src/main/java/org/apache/juneau/rest/auth/oidc/rp/EphemeralStore.java
index 1e88198364..ba338b068e 100644
--- a/juneau-rest/juneau-rest-server-oidc-rp/src/main/java/org/apache/juneau/rest/auth/oidc/rp/EphemeralStore.java
+++ b/juneau-rest/juneau-rest-server-oidc-rp/src/main/java/org/apache/juneau/rest/auth/oidc/rp/EphemeralStore.java
@@ -33,7 +33,7 @@ import java.util.*;
  * 		callback with the same {@code state} fails.
  * 	<li><b>TTL-bounded</b> &mdash; entries older than the configured TTL are treated as a miss and swept.
  * 	<li><b>Size-bounded</b> &mdash; an LRU cap (default 10 000) prevents unbounded growth from abandoned
- * 		login attempts; eviction mirrors the {@code BoundedLruTokenCache} shape from FINISHED-94c.
+ * 		login attempts; eviction mirrors the {@code BoundedLruTokenCache} shape.
  * </ul>
  *
  * <p>
diff --git a/juneau-rest/juneau-rest-server-oidc-rp/src/main/java/org/apache/juneau/rest/auth/oidc/rp/OidcRelyingParty.java b/juneau-rest/juneau-rest-server-oidc-rp/src/main/java/org/apache/juneau/rest/auth/oidc/rp/OidcRelyingParty.java
index 6da978bc51..8bf1c962f0 100644
--- a/juneau-rest/juneau-rest-server-oidc-rp/src/main/java/org/apache/juneau/rest/auth/oidc/rp/OidcRelyingParty.java
+++ b/juneau-rest/juneau-rest-server-oidc-rp/src/main/java/org/apache/juneau/rest/auth/oidc/rp/OidcRelyingParty.java
@@ -904,7 +904,9 @@ public class OidcRelyingParty {
 		}
 	}
 
-	@SuppressWarnings("deprecation")  // LogoutTokenValidator(Issuer, ClientID, JWSKeySelector, JWEKeySelector) is deprecated; no alternative in current Nimbus version.
+	@SuppressWarnings({
+		"deprecation" // LogoutTokenValidator(Issuer, ClientID, JWSKeySelector, JWEKeySelector) is deprecated; no alternative in current Nimbus version.
+	})
 	private LogoutTokenValidator logoutTokenValidator() {
 		var v = logoutTokenValidatorCache;
 		if (v != null)
diff --git a/juneau-rest/juneau-rest-server-oidc-rp/src/main/java/org/apache/juneau/rest/auth/oidc/rp/SignedCookieSessionStore.java b/juneau-rest/juneau-rest-server-oidc-rp/src/main/java/org/apache/juneau/rest/auth/oidc/rp/SignedCookieSessionStore.java
index a29cd6b750..46f466516e 100644
--- a/juneau-rest/juneau-rest-server-oidc-rp/src/main/java/org/apache/juneau/rest/auth/oidc/rp/SignedCookieSessionStore.java
+++ b/juneau-rest/juneau-rest-server-oidc-rp/src/main/java/org/apache/juneau/rest/auth/oidc/rp/SignedCookieSessionStore.java
@@ -183,7 +183,9 @@ public class SignedCookieSessionStore implements SessionStore {
 	}
 
 	@Override /* Overridden from SessionStore */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	public Optional<OidcSession> lookup(String cookieValue) {
 		assertArgNotNull("cookieValue", cookieValue);
 		try {
diff --git a/juneau-rest/juneau-rest-server-otel/src/main/java/org/apache/juneau/rest/tracing/otel/OtelTracerHook.java b/juneau-rest/juneau-rest-server-otel/src/main/java/org/apache/juneau/rest/tracing/otel/OtelTracerHook.java
index e0352c9931..2b78db1fcb 100644
--- a/juneau-rest/juneau-rest-server-otel/src/main/java/org/apache/juneau/rest/tracing/otel/OtelTracerHook.java
+++ b/juneau-rest/juneau-rest-server-otel/src/main/java/org/apache/juneau/rest/tracing/otel/OtelTracerHook.java
@@ -177,7 +177,7 @@ public class OtelTracerHook implements TracerHook {
 		Span span = spanBuilder.startSpan();
 		Context spanContext = extracted.with(span);
 
-		// TODO-114: Render the W3C trace-context headers from the server-started span's context (the only
+		// Render the W3C trace-context headers from the server-started span's context (the only
 		// point where it's reliably active) and stash them as request attributes for
 		// TraceContextResponseProcessor to write on the response. The configured propagator only injects
 		// traceparent when the span context is valid, and tracestate only when non-empty, so both guards are
diff --git a/juneau-rest/juneau-rest-server-reactive/src/main/java/org/apache/juneau/rest/reactive/ReactiveResponseProcessor.java b/juneau-rest/juneau-rest-server-reactive/src/main/java/org/apache/juneau/rest/reactive/ReactiveResponseProcessor.java
index 15e70f210a..f443b5f8e0 100644
--- a/juneau-rest/juneau-rest-server-reactive/src/main/java/org/apache/juneau/rest/reactive/ReactiveResponseProcessor.java
+++ b/juneau-rest/juneau-rest-server-reactive/src/main/java/org/apache/juneau/rest/reactive/ReactiveResponseProcessor.java
@@ -92,7 +92,7 @@ import org.apache.juneau.sse.*;
  * <h5 class='topic'>Threading, executors, and MDC</h5>
  * <p>
  * Buffer-shape responses route through {@link AsyncResponseProcessor} and therefore honor
- * {@code @Rest(asyncCompletionExecutor)} (TODO-118) and the SLF4J MDC bridge (TODO-117). Streaming-shape
+ * {@code @Rest(asyncCompletionExecutor)} and the SLF4J MDC bridge. Streaming-shape
  * frame writes happen on whichever thread the publisher emits on (the Reactor / RxJava scheduler); this
  * processor does not impose a {@code subscribeOn(...)} so it never fights the library's scheduler model.
  * When MDC propagation is enabled, the request-thread MDC snapshot is reinstalled around each
@@ -232,7 +232,9 @@ public class ReactiveResponseProcessor implements ResponseProcessor {
 		res.setHeader("Content-Encoding", "identity");
 	}
 
-	@SuppressWarnings("java:S2142") // Interrupt flag restored before returning.
+	@SuppressWarnings({
+		"java:S2142" // Interrupt flag restored before returning.
+	})
 	private static void awaitSync(CompletableFuture<Void> done, long timeoutMs) {
 		try {
 			done.get(timeoutMs, TimeUnit.MILLISECONDS);
diff --git a/juneau-rest/juneau-rest-server-saml/src/main/java/org/apache/juneau/rest/auth/saml/SamlAssertionValidator.java b/juneau-rest/juneau-rest-server-saml/src/main/java/org/apache/juneau/rest/auth/saml/SamlAssertionValidator.java
index 823b5ea87d..f85926a11d 100644
--- a/juneau-rest/juneau-rest-server-saml/src/main/java/org/apache/juneau/rest/auth/saml/SamlAssertionValidator.java
+++ b/juneau-rest/juneau-rest-server-saml/src/main/java/org/apache/juneau/rest/auth/saml/SamlAssertionValidator.java
@@ -66,18 +66,18 @@ import net.shibboleth.shared.resolver.ResolverException;
  *
  * <ul>
  * 	<li><b>Mandatory signature</b> on every assertion (or, optionally, on the {@code <Response>} envelope).
- * 	<li><b>Strict signature-algorithm allowlist</b> (per OQA Q6) &mdash; only {@code rsa-sha256} and
+ * 	<li><b>Strict signature-algorithm allowlist</b> &mdash; only {@code rsa-sha256} and
  * 		{@code ecdsa-sha256} are accepted out of the box.  SHA-1 is permanently rejected.
- * 	<li><b>Clock skew</b> (per OQA Q7) &mdash; defaults to 60 seconds tolerance on {@code NotBefore} /
+ * 	<li><b>Clock skew</b> &mdash; defaults to 60 seconds tolerance on {@code NotBefore} /
  * 		{@code NotOnOrAfter}; capped at 300 seconds.
  * 	<li><b>Audience restriction</b> &mdash; {@code <AudienceRestriction>} must list the configured SP entity ID.
- * 	<li><b>Encrypted assertions</b> (per OQA Q5) &mdash; if the response contains
+ * 	<li><b>Encrypted assertions</b> &mdash; if the response contains
  * 		{@code <EncryptedAssertion>}, a {@code decryptionCredential} must be configured.
  * </ul>
  *
  * <h5 class='topic'>Marker claim</h5>
  * <p>
- * The returned {@link ClaimsPrincipal} is annotated with {@code issuerType=SAML} (OQA Q1) so downstream code
+ * The returned {@link ClaimsPrincipal} is annotated with {@code issuerType=SAML} so downstream code
  * can distinguish SAML-derived principals from JWT-derived principals without resorting to a subclass:
  *
  * <p class='bjava'>
@@ -105,7 +105,9 @@ import net.shibboleth.shared.resolver.ResolverException;
  *
  * @since 9.5.0
  */
-@SuppressWarnings("java:S6539")  // Suppress "monolithic class" — validator is a single end-to-end pipeline.
+@SuppressWarnings({
+	"java:S6539" // Monolithic class: validator is a single end-to-end pipeline.
+})
 public class SamlAssertionValidator {
 
 	/** Marker claim name on the returned {@link ClaimsPrincipal}. */
@@ -114,10 +116,10 @@ public class SamlAssertionValidator {
 	/** Marker claim value identifying the principal as SAML-issued. */
 	public static final String ISSUER_TYPE_SAML = "SAML";
 
-	/** Maximum clock-skew tolerance the builder will accept (5 minutes, per OQA Q7). */
+	/** Maximum clock-skew tolerance the builder will accept (5 minutes). */
 	private static final Duration MAX_CLOCK_SKEW = Duration.ofSeconds(300);
 
-	/** Default allowlist of XML signature algorithms (per OQA Q6). */
+	/** Default allowlist of XML signature algorithms. */
 	private static final Set<String> DEFAULT_ALGORITHMS = Set.of(
 		SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA256,
 		SignatureConstants.ALGO_ID_SIGNATURE_ECDSA_SHA256
@@ -177,7 +179,7 @@ public class SamlAssertionValidator {
 		}
 
 		/**
-		 * Sets the credential used to decrypt {@code <EncryptedAssertion>} elements (per OQA Q5).
+		 * Sets the credential used to decrypt {@code <EncryptedAssertion>} elements.
 		 *
 		 * <p>
 		 * If the response contains encrypted assertions and no decryption credential is configured,
@@ -217,7 +219,7 @@ public class SamlAssertionValidator {
 		 * Replaces the default signature-algorithm allowlist with the supplied URIs.
 		 *
 		 * <p>
-		 * SHA-1 algorithms are silently filtered out per OQA Q6 (permanent rejection).
+		 * SHA-1 algorithms are silently filtered out (permanent rejection).
 		 *
 		 * @param values The XML-DSig algorithm URIs to allow.  Must contain at least one non-SHA-1 entry.
 		 * @return This object.
@@ -240,7 +242,7 @@ public class SamlAssertionValidator {
 		/**
 		 * Sets the clock-skew tolerance for {@code NotBefore} / {@code NotOnOrAfter} validation.
 		 *
-		 * @param value The tolerance.  Must be non-negative and not exceed 5 minutes (per OQA Q7).
+		 * @param value The tolerance.  Must be non-negative and not exceed 5 minutes.
 		 * @return This object.
 		 */
 		public Builder clockSkew(Duration value) {
@@ -580,7 +582,9 @@ public class SamlAssertionValidator {
 	/**
 	 * Suppress unused-import warnings for symbols referenced indirectly (kept for API-clarity).
 	 */
-	@SuppressWarnings("unused")
+	@SuppressWarnings({
+		"unused" // Symbols are referenced indirectly; method exists to keep imports from being flagged.
+	})
 	private static void __apiReferences() {
 		var ignore = new Object[] {
 			SignableXMLObject.class, ValidationContext.class, QName.class, UsageType.class, SignatureConstants.class
diff --git a/juneau-rest/juneau-rest-server-saml/src/main/java/org/apache/juneau/rest/auth/saml/SamlAuthFilter.java b/juneau-rest/juneau-rest-server-saml/src/main/java/org/apache/juneau/rest/auth/saml/SamlAuthFilter.java
index 78affb2667..e95cc3a897 100644
--- a/juneau-rest/juneau-rest-server-saml/src/main/java/org/apache/juneau/rest/auth/saml/SamlAuthFilter.java
+++ b/juneau-rest/juneau-rest-server-saml/src/main/java/org/apache/juneau/rest/auth/saml/SamlAuthFilter.java
@@ -268,7 +268,9 @@ public class SamlAuthFilter extends AuthFilter {
 		}
 	}
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	private Set<String> extractRoles(Principal principal) {
 		if (principal instanceof ClaimsPrincipal cp) {
 			var v = cp.getClaims().get(rolesClaim);
diff --git a/juneau-rest/juneau-rest-server-saml/src/main/java/org/apache/juneau/rest/auth/saml/SamlMetadataResolvers.java b/juneau-rest/juneau-rest-server-saml/src/main/java/org/apache/juneau/rest/auth/saml/SamlMetadataResolvers.java
index 02e6677115..81177254da 100644
--- a/juneau-rest/juneau-rest-server-saml/src/main/java/org/apache/juneau/rest/auth/saml/SamlMetadataResolvers.java
+++ b/juneau-rest/juneau-rest-server-saml/src/main/java/org/apache/juneau/rest/auth/saml/SamlMetadataResolvers.java
@@ -37,7 +37,7 @@ import org.w3c.dom.Element;
  * Convenience factories for building {@link MetadataResolver} instances backed by an OpenSAML implementation.
  *
  * <p>
- * Per the TODO-94b plan and OQA Q2, Juneau ships <i>convenience factories only</i> &mdash; no bundled default
+ * Juneau ships <i>convenience factories only</i> &mdash; no bundled default
  * {@link MetadataResolver} singleton.  Applications either:
  * <ul>
  * 	<li>Call {@link #file(File)} for a local SAML metadata file (typical dev/staging setup).
diff --git a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
index c930485bb0..18ca437450 100644
--- a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
+++ b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
@@ -92,7 +92,9 @@ public class SpringBeanStore extends BasicBeanStore {
 	}
 
 	@Override
-	@SuppressWarnings("resource") // super.clear() returns this; the discarded return is the store we already own
+	@SuppressWarnings({
+		"resource" // super.clear() returns this; the discarded return is the store we already own
+	})
 	public SpringBeanStore clear() {
 		super.clear();
 		if (nn(environmentSource))
diff --git a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
index b4f581a16e..2efef4c0b2 100644
--- a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
+++ b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
@@ -53,7 +53,9 @@ public abstract class SpringRestServlet extends RestServlet {
 	 * @return A {@link WritableBeanStore} backed by Spring's {@link ApplicationContext}.
 	 */
 	@Bean
-	@SuppressWarnings("resource") // Spring takes ownership of the returned bean and manages its lifecycle
+	@SuppressWarnings({
+		"resource" // Spring takes ownership of the returned bean and manages its lifecycle
+	})
 	public WritableBeanStore createBeanStore(Optional<BeanStore> parent) {
 		return new SpringBeanStore(appContext.orElse(null), parent.orElse(null));
 	}
diff --git a/juneau-rest/juneau-rest-server-view-freemarker/src/main/java/org/apache/juneau/rest/view/freemarker/FreemarkerMixin.java b/juneau-rest/juneau-rest-server-view-freemarker/src/main/java/org/apache/juneau/rest/view/freemarker/FreemarkerMixin.java
index 64faed0531..155be77f59 100644
--- a/juneau-rest/juneau-rest-server-view-freemarker/src/main/java/org/apache/juneau/rest/view/freemarker/FreemarkerMixin.java
+++ b/juneau-rest/juneau-rest-server-view-freemarker/src/main/java/org/apache/juneau/rest/view/freemarker/FreemarkerMixin.java
@@ -71,8 +71,7 @@ import org.apache.juneau.rest.annotation.*;
  * ({@code -Djuneau.freemarker.path=views}), environment variable
  * ({@code JUNEAU_FREEMARKER_PATH=views}), or {@code Config} key
  * ({@code juneau.freemarker.path = views}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see
- * {@code FINISHED-99-svl-in-op-paths.md} for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time (SVL resolution in {@code @RestOp(path)}).
  *
  * <h5 class='section'>Mixin-only deployment:</h5>
  *
diff --git a/juneau-rest/juneau-rest-server-view-jsp/src/main/java/org/apache/juneau/rest/view/jsp/JspMixin.java b/juneau-rest/juneau-rest-server-view-jsp/src/main/java/org/apache/juneau/rest/view/jsp/JspMixin.java
index cf33ad89de..751bc31fbf 100644
--- a/juneau-rest/juneau-rest-server-view-jsp/src/main/java/org/apache/juneau/rest/view/jsp/JspMixin.java
+++ b/juneau-rest/juneau-rest-server-view-jsp/src/main/java/org/apache/juneau/rest/view/jsp/JspMixin.java
@@ -67,8 +67,7 @@ import org.apache.juneau.rest.annotation.*;
  * ({@code -Djuneau.jsp.path=views}), environment variable
  * ({@code JUNEAU_JSP_PATH=views}), or {@code Config} key
  * ({@code juneau.jsp.path = views}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see the FINISHED-99 archive
- * (SVL resolution in {@code @RestOp(path)}) for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time (SVL resolution in {@code @RestOp(path)}).
  *
  * <p>
  * Override accepts bare token ({@code jsp}), leading slash ({@code /jsp}), trailing slash
diff --git a/juneau-rest/juneau-rest-server-view-mustache/src/main/java/org/apache/juneau/rest/view/mustache/MustacheMixin.java b/juneau-rest/juneau-rest-server-view-mustache/src/main/java/org/apache/juneau/rest/view/mustache/MustacheMixin.java
index 9cde9c765a..2b27d17d0f 100644
--- a/juneau-rest/juneau-rest-server-view-mustache/src/main/java/org/apache/juneau/rest/view/mustache/MustacheMixin.java
+++ b/juneau-rest/juneau-rest-server-view-mustache/src/main/java/org/apache/juneau/rest/view/mustache/MustacheMixin.java
@@ -71,8 +71,7 @@ import org.apache.juneau.rest.annotation.*;
  * ({@code -Djuneau.mustache.path=views}), environment variable
  * ({@code JUNEAU_MUSTACHE_PATH=views}), or {@code Config} key
  * ({@code juneau.mustache.path = views}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see
- * {@code FINISHED-99-svl-in-op-paths.md} for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time (SVL resolution in {@code @RestOp(path)}).
  *
  * <h5 class='section'>Mixin-only deployment:</h5>
  *
diff --git a/juneau-rest/juneau-rest-server-view-thymeleaf/src/main/java/org/apache/juneau/rest/view/thymeleaf/ThymeleafMixin.java b/juneau-rest/juneau-rest-server-view-thymeleaf/src/main/java/org/apache/juneau/rest/view/thymeleaf/ThymeleafMixin.java
index e6d9997157..4eeaee22ae 100644
--- a/juneau-rest/juneau-rest-server-view-thymeleaf/src/main/java/org/apache/juneau/rest/view/thymeleaf/ThymeleafMixin.java
+++ b/juneau-rest/juneau-rest-server-view-thymeleaf/src/main/java/org/apache/juneau/rest/view/thymeleaf/ThymeleafMixin.java
@@ -70,8 +70,7 @@ import org.thymeleaf.templatemode.*;
  * ({@code -Djuneau.thymeleaf.path=views}), environment variable
  * ({@code JUNEAU_THYMELEAF_PATH=views}), or {@code Config} key
  * ({@code juneau.thymeleaf.path = views}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see
- * {@code FINISHED-99-svl-in-op-paths.md} for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time (SVL resolution in {@code @RestOp(path)}).
  *
  * <h5 class='section'>Mixin-only deployment:</h5>
  *
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/AbstractRestBuilder.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/AbstractRestBuilder.java
index 28a88f825a..ba193f46ee 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/AbstractRestBuilder.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/AbstractRestBuilder.java
@@ -94,7 +94,7 @@ public abstract class AbstractRestBuilder<R, SELF extends AbstractRestBuilder<R,
 
 	/**
 	 * Reflectively instantiates the resource type, preferring a {@code (RestBuilder<?>)} constructor (constructor
-	 * injection &mdash; TODO-145 &sect;2.4 constructor trio) and falling back to the no-arg constructor.
+	 * injection) and falling back to the no-arg constructor.
 	 *
 	 * <p>
 	 * Flavor builder {@code build()} implementations call this then stash {@code this} on the returned instance.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index e3968f2e7d..b2f50fc8b6 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -260,7 +260,7 @@ public class RestContext extends Context {
 		 * Back-compatible constructor without the {@code restBuilder} component (defaults it to <jk>null</jk>).
 		 *
 		 * <p>
-		 * The {@code restBuilder} (TODO-143) is then resolved during {@link RestContext} construction from the
+		 * The {@code restBuilder} is then resolved during {@link RestContext} construction from the
 		 * resource instance's stashed builder, so call sites that don't carry one keep working unchanged.
 		 *
 		 * @param resourceClass The resource class.
@@ -286,7 +286,9 @@ public class RestContext extends Context {
 	 * {@link RestContext} via the public {@link #RestContext(Args)} constructor; this Builder
 	 * exists only as internal bootstrap state for the framework and is slated for inlining in a later phase.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required: annotation type parameter is unknown at static analysis time.
+	})
 	static class Builder extends Context.Builder implements ServletConfig {
 
 		private final Class<?> resourceClass;
@@ -416,7 +418,7 @@ public class RestContext extends Context {
 		/**
 		 * Programmatically sets the {@link java.util.concurrent.Executor} bean name used to route
 		 * {@link java.util.concurrent.CompletableFuture} completion callbacks through a dedicated thread pool
-		 * (TODO-118). Equivalent to {@link Rest#asyncCompletionExecutor()} on the resource class.
+		 * Equivalent to {@link Rest#asyncCompletionExecutor()} on the resource class.
 		 *
 		 * <p>
 		 * The value is looked up by name in the resource's bean store at context-build time. If the name does
@@ -719,7 +721,7 @@ public class RestContext extends Context {
 	private AnnotationWorkList annotationWork;
 
 	/**
-	 * The programmatic configuration builder for this resource (TODO-143), or <jk>null</jk> when configured purely
+	 * The programmatic configuration builder for this resource, or <jk>null</jk> when configured purely
 	 * by annotation.  Resolved during construction from {@link Args#restBuilder()} or, failing that, from the
 	 * resource instance's stashed builder.  When non-<jk>null</jk>, a synthetic highest-priority {@code @Rest}
 	 * annotation built from its set members is prepended to {@link #getRestAnnotations()} so builder-supplied
@@ -1172,7 +1174,7 @@ public class RestContext extends Context {
 	/**
 	 * Env-driven default controlling whether the {@link TraceContextResponseProcessor} is registered so the
 	 * server writes W3C {@code traceparent} / {@code tracestate} response headers when a {@link TracerHook} is
-	 * active (TODO-114). Defaults to {@code true} (on-when-tracer); set {@code RestContext.responseTraceparent=false}
+	 * active. Defaults to {@code true} (on-when-tracer); set {@code RestContext.responseTraceparent=false}
 	 * to keep the processor out of the chain entirely.
 	 */
 	@Value("${RestContext.responseTraceparent:true}")
@@ -1181,7 +1183,7 @@ public class RestContext extends Context {
 	/**
 	 * Env-driven default controlling whether {@link org.apache.juneau.rest.processor.MdcAsyncListener} propagates
 	 * the request thread's SLF4J MDC map to {@link java.util.concurrent.CompletableFuture} completion threads
-	 * (TODO-117). Defaults to {@code true} (on when SLF4J is detected). Set
+	 * Defaults to {@code true} (on when SLF4J is detected). Set
 	 * {@code RestContext.mdcAsyncPropagation=false} to disable globally, or call
 	 * {@link Builder#mdcAsyncPropagation(boolean)} per resource.
 	 */
@@ -1723,12 +1725,12 @@ public class RestContext extends Context {
 		// ResponseProcessorList.Builder.add(...) uses addAll (append) — final order: [DefaultConfig, parent, child].
 		var bs = beanStore();
 		var b = ResponseProcessorList.create(bs);
-		// TODO-114: When enabled (default on-when-tracer), front-load the W3C trace-context processor so it
+		// When enabled (default on-when-tracer), front-load the W3C trace-context processor so it
 		// writes traceparent/tracestate headers before the body-rendering processors run. It short-circuits
 		// at request time when no TracerHook stashed a trace context, so it's zero-cost on the no-tracer path.
 		if (defaultResponseTraceparent)
 			b.add(TraceContextResponseProcessor.class);
-		// TODO-119/120 refactor: front-load any module-contributed ResponseProcessors discovered via
+		// Front-load any module-contributed ResponseProcessors discovered via
 		// ServiceLoader (e.g. the opt-in juneau-rest-server-reactive module's ReactiveResponseProcessor,
 		// which must run ahead of AsyncResponseProcessor). Inert on a bare juneau-rest-server classpath —
 		// when no module ships a META-INF/services/...ResponseProcessor provider file the list is empty and
@@ -1985,7 +1987,10 @@ public class RestContext extends Context {
 	 * guard below short-circuits the flat-inheritance rule (a mixin's {@code @Rest(mixins=B)} is collected at
 	 * the host level, not nested under A).
 	 */
-	@SuppressWarnings({"java:S3776", "java:S1141"})
+	@SuppressWarnings({
+		"java:S3776", // High cognitive complexity is inherent in REST operation set initialization.
+		"java:S1141"  // Nested try/catch blocks required for granular error reporting during initialization.
+	})
 	private final Memoizer<RestOperations> restOperations = memoizer(() -> safe(() -> {
 		initializeFrameworkBeansForRestOps();
 		var bs = beanStore();
@@ -2118,7 +2123,10 @@ public class RestContext extends Context {
 	 * @param builder The builder containing the settings for this bean.
 	 * @throws Exception If any initialization problems were encountered.
 	 */
-	@SuppressWarnings({"java:S3776", "java:S1141"})
+	@SuppressWarnings({
+		"java:S3776", // High cognitive complexity is inherent in REST context constructor initialization.
+		"java:S1141"  // Nested try/catch blocks required for granular error reporting during initialization.
+	})
 	private RestContext(Builder builder) throws Exception {
 		super(builder);
 
@@ -2137,7 +2145,7 @@ public class RestContext extends Context {
 			var rs = new ResourceSupplier(resourceClass, assertArgNotNull("resource", builder.args.resource()));
 			resource = rs;
 
-			// TODO-143: resolve the programmatic configuration builder.  Prefer the one carried on Args (set by
+			// Resolve the programmatic configuration builder.  Prefer the one carried on Args (set by
 			// RestServlet.init()); otherwise read the builder stashed on the resource instance (non-reflective) so
 			// programmatic construction via MockRestClient, child mounting, and mixin composition all honor it.
 			var rb = builder.args.restBuilder();
@@ -2161,8 +2169,8 @@ public class RestContext extends Context {
 			//
 			// For mixin sub-contexts, the parent is the host's FULL beanStore (not just the bootstrap layer)
 			// so that resource-class-level @Bean factory methods declared on the host class are visible to
-			// the mixin's resolution chain.  This matches the FINISHED-72 behavior where mixin endpoints
-			// resolved through the host's beanStore directly; with per-mixin sub-contexts, the same effect is
+			// the mixin's resolution chain.  Mixin endpoints resolved through the host's beanStore directly;
+			// with per-mixin sub-contexts, the same effect is
 			// achieved by parent-linking the mixin's beanStore to the host's full beanStore.
 			//
 			// For top-level resources and @Rest(children) sub-resources, the parent remains the bootstrap
@@ -2177,8 +2185,8 @@ public class RestContext extends Context {
 
 			// Build the initial beanStore; honor an optional @Bean WritableBeanStore override.
 			// In the new 9.5 precedence model, the parent (Spring or parent-resource bootstrap) is
-			// installed as the overriding parent so it wins over local entries.  Phase 1 of TODO-35
-			// threads Args.overridingParent into the per-resource (final beanStore) overridingParent
+			// installed as the overriding parent so it wins over local entries.
+			// Args.overridingParent threads into the per-resource (final beanStore) overridingParent
 			// slot so test-time overlays (TestBeanStore) resolve at tier 1 of the chain ahead of
 			// any @Bean factory result registered as a local entry below.
 			// @formatter:off
@@ -2384,7 +2392,7 @@ public class RestContext extends Context {
 		// supplied. The check runs after all @Bean method injection so that consumer-provided beans are visible.
 		checkObservabilityBackendPresent();
 
-		// Startup-fail (TODO-118): if asyncCompletionExecutor is configured (either by annotation or
+		// Startup-fail: if asyncCompletionExecutor is configured (either by annotation or
 		// programmatically), force-evaluate the memoizer now so "bean not found" surfaces at context
 		// init time rather than lazily on the first request.
 		checkAsyncCompletionExecutorPresent();
@@ -2521,7 +2529,7 @@ public class RestContext extends Context {
 	}
 
 	/**
-	 * Prepends the synthetic builder-supplied {@code @Rest} annotation (TODO-143) at the most-derived (child)
+	 * Prepends the synthetic builder-supplied {@code @Rest} annotation at the most-derived (child)
 	 * position so its set members win in both child-first ({@code findFirst}) and parent-to-child
 	 * ({@code reduce-last}) resolution walks.  Returns {@code base} unchanged when there is no programmatic builder.
 	 *
@@ -2538,8 +2546,8 @@ public class RestContext extends Context {
 	}
 
 	/**
-	 * Non-reflectively reads the programmatic configuration builder stashed on a resource/mixin instance
-	 * (TODO-143 &sect;2.4), or returns <jk>null</jk> when the instance carries none or is not a builder-aware base type.
+	 * Non-reflectively reads the programmatic configuration builder stashed on a resource/mixin instance,
+	 * or returns <jk>null</jk> when the instance carries none or is not a builder-aware base type.
 	 *
 	 * @param r The resource instance.
 	 * @return The stashed builder, or <jk>null</jk>.
@@ -2659,7 +2667,7 @@ public class RestContext extends Context {
 
 	/**
 	 * Whether the resource opts into per-request virtual-thread dispatch on Java 21+; resolved from
-	 * {@code @Rest(virtualThreads)} (TODO-70).
+	 * {@code @Rest(virtualThreads)}.
 	 *
 	 * <p>
 	 * Detection happens at context-init via {@link #mergeReplacedBooleanAttribute(String, boolean)}; on JVMs older
@@ -2681,7 +2689,7 @@ public class RestContext extends Context {
 
 	/**
 	 * Configurable async-response timeout (milliseconds) applied by {@code AsyncResponseProcessor} to
-	 * {@link CompletableFuture}-returning handlers; resolved from {@code @Rest(asyncTimeoutMillis)} (TODO-70).
+	 * {@link CompletableFuture}-returning handlers; resolved from {@code @Rest(asyncTimeoutMillis)}.
 	 *
 	 * <p>
 	 * {@code 0} disables the timeout. The default 30-second fallback is applied by {@code AsyncResponseProcessor}
@@ -2705,7 +2713,7 @@ public class RestContext extends Context {
 	 *
 	 * <p>
 	 * The memoizer throws {@link IllegalStateException} at first access if the bean name was supplied but no
-	 * matching {@link Executor} bean is found — this surfaces as a startup failure, not a silent no-op (TODO-118).
+	 * matching {@link Executor} bean is found — this surfaces as a startup failure, not a silent no-op.
 	 */
 	private final Memoizer<Executor> asyncCompletionExecutor = memoizer(() -> {
 		// Programmatic override takes priority over the annotation chain.
@@ -2737,7 +2745,7 @@ public class RestContext extends Context {
 	 *
 	 * <p>
 	 * On Java 17/18/19/20 the supplier returns {@code null} and emits a one-shot {@code WARNING} log so the
-	 * resource degrades gracefully to caller-thread dispatch (TODO-70 graceful-degradation contract).
+	 * resource degrades gracefully to caller-thread dispatch.
 	 */
 	private final Memoizer<Executor> virtualThreadExecutor = memoizer(() -> {
 		// NOTE: Intentionally not gated on resource-level {@code virtualThreadsEnabled.get()} — per-op
@@ -2760,7 +2768,7 @@ public class RestContext extends Context {
 		}
 	});
 
-	/** Logger for async / virtual-thread setup events (TODO-70). Used at memoizer init before {@link #getLogger()} may be wired up. */
+	/** Logger for async / virtual-thread setup events. Used at memoizer init before {@link #getLogger()} may be wired up. */
 	private static final Logger ASYNC_LOG = Logger.getLogger(RestContext.class.getName() + ".async");
 
 	/**
@@ -4000,7 +4008,7 @@ public class RestContext extends Context {
 
 	/**
 	 * Returns whether the server writes W3C {@code traceparent} / {@code tracestate} response headers when a
-	 * {@link TracerHook} is active on the request (TODO-114).
+	 * {@link TracerHook} is active on the request.
 	 *
 	 * <p>
 	 * Defaults to {@code true} (on-when-tracer); resolved from the {@code RestContext.responseTraceparent}
@@ -4015,7 +4023,7 @@ public class RestContext extends Context {
 
 	/**
 	 * Returns whether SLF4J MDC propagation is enabled for {@link java.util.concurrent.CompletableFuture}
-	 * completion threads on this resource (TODO-117).
+	 * completion threads on this resource.
 	 *
 	 * <p>
 	 * Defaults to {@code true}; resolved first from the programmatic {@link Builder#mdcAsyncPropagation(boolean)}
@@ -4051,7 +4059,7 @@ public class RestContext extends Context {
 
 	/**
 	 * Returns the {@link java.util.concurrent.Executor} configured for routing
-	 * {@link java.util.concurrent.CompletableFuture} completion callbacks on this resource (TODO-118), or
+	 * {@link java.util.concurrent.CompletableFuture} completion callbacks on this resource, or
 	 * {@code null} when {@code @Rest(asyncCompletionExecutor)} is unset (natural completion thread).
 	 *
 	 * @return The executor, or {@code null} if no async-completion executor is configured.
@@ -4190,7 +4198,7 @@ public class RestContext extends Context {
 
 	/**
 	 * Eagerly evaluates the {@link #asyncCompletionExecutor} memoizer when the annotation or programmatic
-	 * override is non-blank, ensuring "bean not found" surfaces as a startup failure (TODO-118).
+	 * override is non-blank, ensuring "bean not found" surfaces as a startup failure.
 	 *
 	 * @throws IllegalStateException if the named executor bean is not in the bean store.
 	 */
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
index 01f135f082..9f8cb382e7 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
@@ -80,6 +80,7 @@ import jakarta.servlet.http.*;
  */
 @SuppressWarnings({
 	"rawtypes",
+	"java:S112",  // throws Exception intentional - callback/lifecycle methods throughout this class
 	"java:S115",  // Constants use UPPER_snakeCase convention (e.g., PROP_defaultRequestFormData)
 	"java:S1200", // High coupling is intentional in this central operation context aggregator.
 	"java:S6539", // RestOpContext intentionally centralizes op wiring and annotation resolution.
@@ -552,7 +553,9 @@ public class RestOpContext extends Context implements Comparable<RestOpContext>
 	 * ({@link RestGet}, etc.) imply their fixed verb. Falls back to
 	 * {@link HttpUtils#detectHttpMethod} when no annotation declares a verb.
 	 */
-	@SuppressWarnings("java:S3776")
+	@SuppressWarnings({
+		"java:S3776" // Cognitive complexity: annotation-driven HTTP method dispatch benefits from consolidated linear scan.
+	})
 	private final Memoizer<String> httpMethod = memoizer(() -> {
 		var vr = varResolver();
 		for (var ai : getRestOpAnnotations()) {
@@ -854,7 +857,9 @@ public class RestOpContext extends Context implements Comparable<RestOpContext>
 	 * (derived from the method name via {@link HttpUtils#detectHttpPath}) is intentionally
 	 * <i>not</i> SVL-resolved &mdash; it is framework-derived, not user input.
 	 */
-	@SuppressWarnings("java:S3776")
+	@SuppressWarnings({
+		"java:S3776" // Cognitive complexity: annotation-driven path-matcher construction benefits from consolidated linear scan.
+	})
 	private final Memoizer<UrlPathMatcher[]> pathMatchers = memoizer(() -> {
 		var v = Holder.of(UrlPathMatcherList.create());
 		var vr = varResolver();
@@ -1219,7 +1224,9 @@ public class RestOpContext extends Context implements Comparable<RestOpContext>
 		}
 	}
 
-	@SuppressWarnings("java:S3776")
+	@SuppressWarnings({
+		"java:S3776" // Cognitive complexity: reflective annotation dispatch is intentionally consolidated for JIT inlining.
+	})
 	private static String httpMethodFromAnnotation(Annotation a, VarResolver vr) {
 		if (a instanceof RestGet)
 			return "get";
@@ -1405,9 +1412,6 @@ public class RestOpContext extends Context implements Comparable<RestOpContext>
 	 * @return The wrapped request object.
 	 * @throws Exception If any errors occur trying to interpret the request.
 	 */
-	@SuppressWarnings({
-		"java:S112" // throws Exception intentional - callback/lifecycle method
-	})
 	public RestRequest createRequest(RestSession session) throws Exception {
 		return new RestRequest(this, session);
 	}
@@ -1421,9 +1425,6 @@ public class RestOpContext extends Context implements Comparable<RestOpContext>
 	 * @return The wrapped response object.
 	 * @throws Exception If any errors occur trying to interpret the request or response.
 	 */
-	@SuppressWarnings({
-		"java:S112" // throws Exception intentional - callback/lifecycle method
-	})
 	public RestResponse createResponse(RestSession session, RestRequest req) throws Exception {
 		return new RestResponse(this, session, req);
 	}
@@ -1435,9 +1436,6 @@ public class RestOpContext extends Context implements Comparable<RestOpContext>
 	 * @return A new REST operation session.
 	 * @throws Exception If op session could not be created.
 	 */
-	@SuppressWarnings({
-		"java:S112" // throws Exception intentional - callback/lifecycle method
-	})
 	public RestOpSession.Builder createSession(RestSession session) throws Exception {
 		return RestOpSession.create(this, session).logger(getCallLogger()).debug(debugConfig.get().resolve(this, session.getRequest()).enabled());
 	}
@@ -1608,7 +1606,7 @@ public class RestOpContext extends Context implements Comparable<RestOpContext>
 
 	/**
 	 * Returns the effective {@link java.util.concurrent.Executor} for routing
-	 * {@link java.util.concurrent.CompletableFuture} completion callbacks on this operation (TODO-118), or
+	 * {@link java.util.concurrent.CompletableFuture} completion callbacks on this operation, or
 	 * {@code null} when neither the op nor the resource configures an executor (natural completion thread).
 	 *
 	 * @return The executor, or {@code null} if no async-completion executor is configured.
@@ -1720,8 +1718,10 @@ public class RestOpContext extends Context implements Comparable<RestOpContext>
 			var a = ClassInfo.of(c).getAnnotations(Header.class).findFirst().map(AnnotationInfo::inner).orElse(null);
 			if (nn(a)) {
 				var schema = HttpPartSchema.create(a);
-				@SuppressWarnings("unchecked")
-				var serializer = createPartSerializer((Class<? extends HttpPartSerializer>)schema.getSerializer(), getPartSerializer());
+			@SuppressWarnings({
+				"unchecked" // Cast is safe: type parameter is verified by caller context.
+			})
+			var serializer = createPartSerializer((Class<? extends HttpPartSerializer>)schema.getSerializer(), getPartSerializer());
 				pm = new ResponsePartMeta(HEADER, schema, serializer);
 			}
 			if (pm == null)
@@ -1859,7 +1859,9 @@ public class RestOpContext extends Context implements Comparable<RestOpContext>
 		return null;
 	}
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type parameter is verified by caller context.
+	})
 	private static <T> Class<? extends T>[] classArray(Class<? extends T> value) {
 		return (Class<? extends T>[])new Class<?>[] { value };
 	}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpInvoker.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpInvoker.java
index ac0d17bdac..e929d66a9a 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpInvoker.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpInvoker.java
@@ -88,7 +88,7 @@ public class RestOpInvoker extends MethodInvoker {
 	 * {@link RestContext#postCall(RestOpSession)}) continue to use {@link #invoke(RestOpSession)} so the
 	 * observability boundary stays anchored on the user-facing handler.
 	 *
-	 * <h5 class='section'>Virtual-thread dispatch (TODO-70)</h5>
+	 * <h5 class='section'>Virtual-thread dispatch</h5>
 	 * <p>
 	 * When the operation opts into virtual threads via {@code @Rest(virtualThreads=true)} or
 	 * {@code @RestOp(virtualThreads=true)} and the runtime is Java 21+, the entire body of this method
@@ -97,7 +97,7 @@ public class RestOpInvoker extends MethodInvoker {
 	 * That keeps observability scoping correct (open and close run on the same thread) while letting
 	 * blocking I/O inside the handler park a virtual thread instead of the carrier.
 	 *
-	 * <h5 class='section'>{@link CompletableFuture} returns (TODO-70)</h5>
+	 * <h5 class='section'>{@link CompletableFuture} returns</h5>
 	 * <p>
 	 * When the handler returns a {@link CompletionStage}, the observability close is deferred to the
 	 * future's {@code whenComplete} callback so metrics and traces capture the actual completion time
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
index c46527b33a..d851879ab7 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
@@ -56,7 +56,9 @@ public class RestOpSession extends ContextSession {
 	/**
 	 * Builder class.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required: annotation type parameter is unknown at static analysis time.
+	})
 	public static class Builder extends ContextSession.Builder {
 
 		protected final RestOpContext ctx;
@@ -149,7 +151,7 @@ public class RestOpSession extends ContextSession {
 	 * @return This object.
 	 */
 	public RestOpSession finish() {
-		// TODO-70: when AsyncResponseProcessor has handed off to a real AsyncContext, the response will be
+		// When AsyncResponseProcessor has handed off to a real AsyncContext, the response will be
 		// committed by AsyncContext.complete() inside the future's whenComplete callback — synchronously
 		// flushing here would commit the response prematurely.
 		if (AsyncResponseProcessor.isAsyncDispatchOwned(this))
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServerConstants.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServerConstants.java
index 7d879629f0..5535f50c37 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServerConstants.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServerConstants.java
@@ -96,7 +96,7 @@ public final class RestServerConstants {
 	 * The {@code "asyncCompletionExecutor"} annotation attribute name — names a {@link java.util.concurrent.Executor}
 	 * bean (resolved from the resource's {@link org.apache.juneau.commons.inject.BeanStore}) that routes
 	 * {@link java.util.concurrent.CompletableFuture} completion callbacks through a dedicated thread pool instead of
-	 * the future's natural completion thread (TODO-118). Empty string (default) = no override.
+	 * the future's natural completion thread. Empty string (default) = no override.
 	 */
 	public static final String PROPERTY_asyncCompletionExecutor = "asyncCompletionExecutor";
 
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
index 247d2070cd..15325eb639 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
@@ -60,7 +60,9 @@ public class RestSession extends ContextSession {
 	/**
 	 * Builder class.
 	 */
-	@SuppressWarnings("rawtypes")
+	@SuppressWarnings({
+		"rawtypes" // Raw types required: annotation type parameter is unknown at static analysis time.
+	})
 	public static class Builder extends ContextSession.Builder {
 
 		private CallLogger logger;
@@ -290,7 +292,7 @@ public class RestSession extends ContextSession {
 			if (nn(opSession))
 				opSession.finish();
 			else if (! org.apache.juneau.rest.processor.AsyncResponseProcessor.isAsyncDispatchOwned(req)) {
-				// TODO-70: skip flush when AsyncContext has been started — see AsyncResponseProcessor.
+				// Skip flush when AsyncContext has been started — see AsyncResponseProcessor.
 				res.flushBuffer();
 			}
 		} catch (Exception e) {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
index b89d9bc8f0..184332bf13 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/Rest.java
@@ -789,7 +789,7 @@ public @interface Rest {
 	 * Per-resource observability opt-in / opt-out control.
 	 *
 	 * <p>
-	 * Controls whether the FINISHED-67 observability block ({@link org.apache.juneau.rest.metrics.MetricsRecorder} /
+	 * Controls whether the observability block ({@link org.apache.juneau.rest.metrics.MetricsRecorder} /
 	 * {@link org.apache.juneau.rest.tracing.TracerHook}) fires for operations on this resource.
 	 * Per-operation overrides are available via {@link RestOp#observability()} (and the verb annotations).
 	 *
@@ -892,7 +892,7 @@ public @interface Rest {
 	 *
 	 * <h5 class='section'>Notes:</h5><ul>
 	 * 	<li class='note'>
-	 * 		MDC propagation (TODO-117) still works when this executor is set — the
+	 * 		MDC propagation still works when this executor is set — the
 	 * 		{@link org.apache.juneau.rest.processor.MdcAsyncListener} wraps the callback <em>before</em> it is
 	 * 		routed through the executor, so the MDC snapshot is restored on whichever thread the executor picks.
 	 * </ul>
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
index 159b304d9b..4e6ec16678 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestDeleteAnnotation.java
@@ -386,11 +386,6 @@ public class RestDeleteAnnotation {
 
 	}
 
-	// Phase D-2 (work item 16, 2026-04-19): RestOpContextApply removed entirely. All previously-applied
-	// settings are now resolved via direct annotation walking on the corresponding {@code findXxx()}
-	// memoizers in {@link org.apache.juneau.rest.RestOpContext}; the {@code @ContextApply} reference
-	// on {@code @RestDelete} has been dropped.
-
 	@SuppressWarnings({
 		"java:S2160" // equals() inherited from AnnotationObject compares all annotation interface methods; subclass fields are accessed via those methods
 	})
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
index 303234d0ec..137dfac087 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestGetAnnotation.java
@@ -423,15 +423,8 @@ public class RestGetAnnotation {
 			this.value = value;
 			return this;
 		}
-
 	}
 
-	// Phase D-2 (work item 16, 2026-04-19): RestOpContextApply removed entirely. All previously-applied
-	// settings (serializers/encoders/converters/guards/matchers/clientVersion/headers/attributes/path
-	// etc.) are now resolved via direct annotation walking on the corresponding {@code findXxx()}
-	// memoizers in {@link org.apache.juneau.rest.RestOpContext}; the {@code @ContextApply} reference
-	// on {@code @RestGet} has been dropped.
-
 	@SuppressWarnings({
 		"java:S2160" // equals() inherited from AnnotationObject compares all annotation interface methods; subclass fields are accessed via those methods
 	})
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestInit.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestInit.java
index 5955bcfddb..d473681848 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestInit.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestInit.java
@@ -45,7 +45,7 @@ import jakarta.servlet.*;
  *
  * <p>
  * <b>Note (9.5):</b> two related Builder-injection protocols have been removed in this release. They had zero
- * real-world callers across the codebase before deletion (work item 16 Phase C-3):
+ * real-world callers across the codebase before deletion:
  * <ul>
  * 	<li><b>Per-operation:</b> {@code @RestInit public void init(RestOpContext.Builder b)} (invoked once per
  * 		<code>@RestOp</code>-annotated method) — replaced by declarative <code>@RestOp(...)</code> attributes,
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
index 16ee0d7f70..bee482a36c 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOp.java
@@ -726,7 +726,7 @@ public @interface RestOp {
 	 *
 	 * <p>
 	 * Overrides the resource-level {@link Rest#observability()} setting for this specific operation.
-	 * Controls whether the FINISHED-67 observability block ({@link org.apache.juneau.rest.metrics.MetricsRecorder} /
+	 * Controls whether the observability block ({@link org.apache.juneau.rest.metrics.MetricsRecorder} /
 	 * {@link org.apache.juneau.rest.tracing.TracerHook}) fires for this operation.
 	 *
 	 * <ul class='values'>
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
index a44520633f..30fbba1ef3 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOpAnnotation.java
@@ -532,14 +532,8 @@ public class RestOpAnnotation {
 			this.value = value;
 			return this;
 		}
-
 	}
 
-	// Phase D-2 (work item 16, 2026-04-19): RestOpContextApply removed entirely. All previously-applied
-	// settings are now resolved via direct annotation walking on the corresponding {@code findXxx()}
-	// memoizers in {@link org.apache.juneau.rest.RestOpContext}; the {@code @ContextApply} reference
-	// on {@code @RestOp} has been dropped.
-
 	@SuppressWarnings({
 		"java:S2160" // equals() inherited from AnnotationObject compares all annotation interface methods; subclass fields are accessed via those methods
 	})
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOptionsAnnotation.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOptionsAnnotation.java
index 2ca75e7e01..f36b06ad80 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOptionsAnnotation.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestOptionsAnnotation.java
@@ -423,14 +423,8 @@ public class RestOptionsAnnotation {
 			this.value = value;
 			return this;
 		}
-
 	}
 
-	// Phase D-2 (work item 16, 2026-04-19): RestOpContextApply removed entirely. All previously-applied
-	// settings are now resolved via direct annotation walking on the corresponding {@code findXxx()}
-	// memoizers in {@link org.apache.juneau.rest.RestOpContext}; the {@code @ContextApply} reference
-	// on {@code @RestOptions} has been dropped.
-
 	@SuppressWarnings({
 		"java:S2160" // equals() inherited from AnnotationObject compares all annotation interface methods; subclass fields are accessed via those methods
 	})
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatchAnnotation.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatchAnnotation.java
index 272a98bf8c..478b688f03 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatchAnnotation.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPatchAnnotation.java
@@ -483,14 +483,8 @@ public class RestPatchAnnotation {
 			this.value = value;
 			return this;
 		}
-
 	}
 
-	// Phase D-2 (work item 16, 2026-04-19): RestOpContextApply removed entirely. All previously-applied
-	// settings are now resolved via direct annotation walking on the corresponding {@code findXxx()}
-	// memoizers in {@link org.apache.juneau.rest.RestOpContext}; the {@code @ContextApply} reference
-	// on {@code @RestPatch} has been dropped.
-
 	@SuppressWarnings({
 		"java:S2160" // equals() inherited from AnnotationObject compares all annotation interface methods; subclass fields are accessed via those methods
 	})
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
index 641cdcf410..dad4cc1b16 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPostAnnotation.java
@@ -483,14 +483,8 @@ public class RestPostAnnotation {
 			this.value = value;
 			return this;
 		}
-
 	}
 
-	// Phase D-2 (work item 16, 2026-04-19): RestOpContextApply removed entirely. All previously-applied
-	// settings are now resolved via direct annotation walking on the corresponding {@code findXxx()}
-	// memoizers in {@link org.apache.juneau.rest.RestOpContext}; the {@code @ContextApply} reference
-	// on {@code @RestPost} has been dropped.
-
 	@SuppressWarnings({
 		"java:S2160" // equals() inherited from AnnotationObject compares all annotation interface methods; subclass fields are accessed via those methods
 	})
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
index 1c271b079e..c63a09d324 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/RestPutAnnotation.java
@@ -483,14 +483,8 @@ public class RestPutAnnotation {
 			this.value = value;
 			return this;
 		}
-
 	}
 
-	// Phase D-2 (work item 16, 2026-04-19): RestOpContextApply removed entirely. All previously-applied
-	// settings are now resolved via direct annotation walking on the corresponding {@code findXxx()}
-	// memoizers in {@link org.apache.juneau.rest.RestOpContext}; the {@code @ContextApply} reference
-	// on {@code @RestPut} has been dropped.
-
 	@SuppressWarnings({
 		"java:S2160" // equals() inherited from AnnotationObject compares all annotation interface methods; subclass fields are accessed via those methods
 	})
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/FormDataArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/FormDataArg.java
index 5ac49e59f2..2617b88a45 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/FormDataArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/FormDataArg.java
@@ -143,7 +143,9 @@ public class FormDataArg implements RestOpArg {
 
 		this.def = findDef(pi).or(() -> Optional.ofNullable(classLevelFormData).filter(f -> ne(f.def())).map(FormData::def)).orElse(null);
 		this.type = pi.getParameterType();
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({
+			"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+		})
 		var pp = (Class<? extends HttpPartParser>)schema.getParser();
 		this.partParser = nn(pp) ? HttpPartParser.creator().type(pp).apply(annotations).create() : null;
 		this.multi = schema.getCollectionFormat() == HttpPartCollectionFormat.MULTI;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/HeaderArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/HeaderArg.java
index 024117692c..152a69fb1d 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/HeaderArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/HeaderArg.java
@@ -198,7 +198,9 @@ public class HeaderArg implements RestOpArg {
 
 		this.def = findDef(pi).or(() -> Optional.ofNullable(classLevelHeader).filter(h -> ne(h.def())).map(Header::def)).orElse(null);
 		this.type = pi.getParameterType();
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({
+			"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+		})
 		var pp = (Class<? extends HttpPartParser>)schema.getParser();
 		this.partParser = nn(pp) ? HttpPartParser.creator().type(pp).apply(annotations).create() : null;
 		this.multi = schema.getCollectionFormat() == HttpPartCollectionFormat.MULTI;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/PathArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/PathArg.java
index 31b3cac0b3..bd923fe5f5 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/PathArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/PathArg.java
@@ -134,7 +134,9 @@ public class PathArg implements RestOpArg {
 
 		this.def = findDef(paramInfo).or(() -> Optional.ofNullable(classLevelPath).filter(p -> ne(p.def()) && neq(NONE, p.def())).map(Path::def)).orElse(null);
 		this.type = paramInfo.getParameterType().innerType();
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({
+			"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+		})
 		var pp = (Class<? extends HttpPartParser>)schema.getParser();
 		this.partParser = nn(pp) ? HttpPartParser.creator().type(pp).apply(annotations).create() : null;
 	}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/PathRemainderArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/PathRemainderArg.java
index 00b4ad8985..633bab4076 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/PathRemainderArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/PathRemainderArg.java
@@ -101,7 +101,9 @@ public class PathRemainderArg implements RestOpArg {
 		this.def = findDef(paramInfo).orElse(null);
 		this.type = paramInfo.getParameterType().innerType();
 		this.schema = HttpPartSchema.create(PathRemainder.class, paramInfo);
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({
+			"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+		})
 		var pp = (Class<? extends HttpPartParser>)schema.getParser();
 		this.partParser = nn(pp) ? HttpPartParser.creator().type(pp).apply(annotations).create() : null;
 	}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/QueryArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/QueryArg.java
index f45d0ab1ea..5114f9ec17 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/QueryArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/QueryArg.java
@@ -136,7 +136,9 @@ public class QueryArg implements RestOpArg {
 
 		this.def = findDef(pi).or(() -> Optional.ofNullable(classLevelQuery).filter(q -> ne(q.def())).map(Query::def)).orElse(null);
 		this.type = pi.getParameterType();
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({
+			"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+		})
 		var pp = (Class<? extends HttpPartParser>)schema.getParser();
 		this.partParser = nn(pp) ? HttpPartParser.creator().type(pp).apply(annotations).create() : null;
 		this.multi = schema.getCollectionFormat() == HttpPartCollectionFormat.MULTI;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/ResponseHeaderArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/ResponseHeaderArg.java
index 8f41fa6cec..5f601ae2d7 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/ResponseHeaderArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/ResponseHeaderArg.java
@@ -93,7 +93,9 @@ public class ResponseHeaderArg implements RestOpArg {
 		this.type = pi.getParameterType().innerType();
 		var schema = HttpPartSchema.create(Header.class, pi);
 
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({
+			"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+		})
 		var ps = (Class<? extends HttpPartSerializer>)schema.getSerializer();
 		this.meta = new ResponsePartMeta(HttpPartType.HEADER, schema, nn(ps) ? HttpPartSerializer.creator().type(ps).apply(annotations).create() : null);
 
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/AuthFilter.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/AuthFilter.java
index 504d32fd22..6ca971446a 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/AuthFilter.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/AuthFilter.java
@@ -132,7 +132,9 @@ public abstract class AuthFilter implements Filter {
 	 * @param e The authentication failure.
 	 * @throws IOException If writing to the response fails.
 	 */
-	@SuppressWarnings("resource")  // Writer lifecycle is servlet-managed; do not close.
+	@SuppressWarnings({
+		"resource" // Writer lifecycle is servlet-managed; do not close.
+	})
 	static void sendChallenge(HttpServletResponse resp, AuthenticationException e) throws IOException {
 		e.getHeaders().stream()
 			.filter(h -> WWW_AUTHENTICATE.equalsIgnoreCase(h.getName()))
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/AuthFilterChain.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/AuthFilterChain.java
index 6ce4edd6f6..4055df218b 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/AuthFilterChain.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/AuthFilterChain.java
@@ -270,7 +270,9 @@ public class AuthFilterChain implements Filter {
 	 * @param failures The list of failures to aggregate.
 	 * @throws IOException If writing to the response fails.
 	 */
-	@SuppressWarnings("resource")  // Writer lifecycle is servlet-managed; do not close.
+	@SuppressWarnings({
+		"resource" // Writer lifecycle is servlet-managed; do not close.
+	})
 	private static void sendAggregatedChallenge(HttpServletResponse resp, List<AuthenticationException> failures)
 			throws IOException {
 		var wwwAuth = failures.stream()
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/ClaimsPrincipal.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/ClaimsPrincipal.java
index 1f6220dd86..2530ace76e 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/ClaimsPrincipal.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/ClaimsPrincipal.java
@@ -130,7 +130,9 @@ public class ClaimsPrincipal implements Principal {
 		return claims.containsKey(claimName);
 	}
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: type parameter is verified by isInstance check before casting.
+	})
 	private static <T> T coerce(Object v, Class<T> type) {
 		if (type.isInstance(v))
 			return (T) v;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/ClaimsRoleExtractor.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/ClaimsRoleExtractor.java
index 1adca8a08a..1d409e7b09 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/ClaimsRoleExtractor.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/auth/ClaimsRoleExtractor.java
@@ -39,7 +39,9 @@ class ClaimsRoleExtractor {
 	 * @param claimName The claim name to read (e.g. {@code "roles"}).
 	 * @return The extracted role names.  Never {@code null}; may be empty.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Cast is safe: list element type is verified by instanceof check before casting.
+	})
 	static Set<String> extractRoles(Principal principal, String claimName) {
 		if (principal instanceof ClaimsPrincipal cp) {
 			var v = cp.getClaims().get(claimName);
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/FaviconMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/FaviconMixin.java
index f4d7a1f9ec..ee9bbfad20 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/FaviconMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/FaviconMixin.java
@@ -139,7 +139,7 @@ public class FaviconMixin extends RestMixin {
 	}
 
 	/**
-	 * Worker + builder constructor (TODO-143 OQ-11 / &sect;2.4).
+	 * Worker + builder constructor.
 	 *
 	 * <p>
 	 * Used by {@link Builder#build()} to both delegate to the shared {@link FaviconProvider} worker and stash the
@@ -188,10 +188,10 @@ public class FaviconMixin extends RestMixin {
 	 * <p>
 	 * Mirrors {@link FaviconProvider.Builder}'s configuration methods on the mixin's own surface and
 	 * forwards each call to an underlying {@link FaviconProvider.Builder}, which builds the shared worker
-	 * the mixin delegates to (TODO-145 &sect;2.3.1 / OQ-11).
+	 * the mixin delegates to.
 	 *
 	 * <p>
-	 * Extends {@link org.apache.juneau.rest.servlet.RestMixin.Builder} (TODO-143 Option B) so the mixin's bespoke worker-config setters
+	 * Extends {@link org.apache.juneau.rest.servlet.RestMixin.Builder} so the mixin's bespoke worker-config setters
 	 * ({@link #bytes(byte[])}, {@link #classpath(String)}, {@link #cacheControl(String)}) chain with true
 	 * covariant returns alongside the inherited {@link RestBuilder}surface (e.g. {@code path}, {@code roleGuard}).
 	 * This is how a multi-flavor capability avoids triplicating its REST-level config: the worker config is
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/FaviconProvider.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/FaviconProvider.java
index 44092ba624..73abf00fe3 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/FaviconProvider.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/FaviconProvider.java
@@ -34,7 +34,7 @@ import org.apache.juneau.http.response.*;
  * The {@link FaviconMixin} (mixin), {@link FaviconResource} (child), and {@link FaviconServlet}
  * (servlet) flavors are independent {@code @Rest} classes that each hold a {@code FaviconProvider} worker
  * and delegate to it &mdash; so the three deployment forms cannot drift, and no flavor is another
- * flavor's worker (TODO-145 &sect;2.3.1).
+ * flavor's worker.
  *
  * <h5 class='section'>See Also:</h5><ul>
  * 	<li class='jc'>{@link FaviconMixin}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/SeoMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/SeoMixin.java
index 24788a08b1..101d3065f6 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/SeoMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/SeoMixin.java
@@ -135,7 +135,7 @@ public class SeoMixin extends RestMixin {
 	 * <p>
 	 * Stashes the programmatic {@link RestBuilder}(the builder itself, carrying any {@code @Rest}-level
 	 * overrides such as {@code path}) via {@code super(builder)} so those values take precedence over this
-	 * mixin's own {@link Rest @Rest} annotation (TODO-143 &sect;2.4).
+	 * mixin's own {@link Rest @Rest} annotation.
 	 *
 	 * @param builder The builder.
 	 */
@@ -224,7 +224,7 @@ public class SeoMixin extends RestMixin {
 	 * Builder for {@link SeoMixin} instances.
 	 *
 	 * <p>
-	 * Extends {@link org.apache.juneau.rest.servlet.RestMixin.Builder} (TODO-143 Option B) so the mixin's bespoke robots/sitemap setters chain
+	 * Extends {@link org.apache.juneau.rest.servlet.RestMixin.Builder} so the mixin's bespoke robots/sitemap setters chain
 	 * with true covariant returns alongside the inherited {@link RestBuilder}surface (e.g. {@code path},
 	 * {@code roleGuard}).
 	 */
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/VersionMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/VersionMixin.java
index 3b0deca37f..e73e9790b3 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/VersionMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/VersionMixin.java
@@ -46,8 +46,7 @@ import org.apache.juneau.rest.servlet.*;
  * ({@code -Djuneau.version.path=build-info}), environment variable
  * ({@code JUNEAU_VERSION_PATH=build-info}), or {@code Config} key
  * ({@code juneau.version.path = build-info}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see the FINISHED-99 archive
- * (SVL resolution in {@code @RestOp(path)}) for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time.
  *
  * <p>
  * Override accepts bare token ({@code version}), leading slash ({@code /version}), or trailing
@@ -57,7 +56,7 @@ import org.apache.juneau.rest.servlet.*;
  * <b>Migration note (9.5.0):</b> Earlier development snapshots of this mixin mounted at three
  * historical aliases &mdash; {@code /version}, {@code /info}, and {@code /about} &mdash; on a
  * single op. That multi-path default has been collapsed to a single SVL-configurable mount as
- * part of the "single path per op" principle (see FINISHED-101). Deployers who relied on the
+ * part of the "single path per op" principle. Deployers who relied on the
  * {@code /info} or {@code /about} aliases must now either set
  * {@code -Djuneau.version.path=info} (or {@code about}), compose a second instance with the
  * desired override, or subclass and supply their own {@code @RestGet(path=...)} method.
@@ -186,7 +185,7 @@ public class VersionMixin extends RestMixin {
 	}
 
 	/**
-	 * Worker + builder constructor (TODO-143 OQ-11 / &sect;2.4).
+	 * Worker + builder constructor.
 	 *
 	 * <p>
 	 * Used by {@link Builder#build()} to both delegate to the shared {@link VersionProvider} worker and stash the
@@ -245,10 +244,10 @@ public class VersionMixin extends RestMixin {
 	 * <p>
 	 * Mirrors {@link VersionProvider.Builder}'s configuration methods on the mixin's own surface and
 	 * forwards each call to an underlying {@link VersionProvider.Builder}, which builds the shared worker
-	 * the mixin delegates to (TODO-145 &sect;2.3.1 / OQ-11).
+	 * the mixin delegates to.
 	 *
 	 * <p>
-	 * Extends {@link org.apache.juneau.rest.servlet.RestMixin.Builder} (TODO-143 Option B) so the mixin's bespoke worker-config setters chain
+	 * Extends {@link org.apache.juneau.rest.servlet.RestMixin.Builder} so the mixin's bespoke worker-config setters chain
 	 * with true covariant returns alongside the inherited {@link RestBuilder}surface (e.g. {@code path},
 	 * {@code roleGuard}). The worker config is forwarded once into {@link VersionProvider.Builder} and the REST
 	 * config is inherited once from {@link AbstractRestBuilder} &mdash; no triplication across the Version flavors.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/VersionProvider.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/VersionProvider.java
index 68273efcaf..545d87f114 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/VersionProvider.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/VersionProvider.java
@@ -37,7 +37,7 @@ import org.apache.juneau.rest.*;
  * hasn't wired up JSON serializers). The {@link VersionMixin} (mixin), {@link VersionResource} (child),
  * and {@link VersionServlet} (servlet) flavors are independent {@code @Rest} classes that each hold a
  * {@code VersionProvider} worker and delegate to it &mdash; so the three deployment forms cannot drift, and no
- * flavor is another flavor's worker (TODO-145 &sect;2.3.1).
+ * flavor is another flavor's worker.
  *
  * <h5 class='section'>See Also:</h5><ul>
  * 	<li class='jc'>{@link VersionMixin}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/WellKnownMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/WellKnownMixin.java
index 7f4f74a9b7..9ae9692603 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/WellKnownMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/convention/WellKnownMixin.java
@@ -128,7 +128,7 @@ public class WellKnownMixin extends RestMixin {
 	 * <p>
 	 * Stashes the programmatic {@link RestBuilder}(the builder itself, carrying any {@code @Rest}-level
 	 * overrides such as {@code path}) via {@code super(builder)} so those values take precedence over this
-	 * mixin's own {@link Rest @Rest} annotation (TODO-143 &sect;2.4).
+	 * mixin's own {@link Rest @Rest} annotation.
 	 *
 	 * @param builder The builder.
 	 */
@@ -172,7 +172,7 @@ public class WellKnownMixin extends RestMixin {
 	 * Builder for {@link WellKnownMixin} instances.
 	 *
 	 * <p>
-	 * Extends {@link org.apache.juneau.rest.servlet.RestMixin.Builder} (TODO-143 Option B) so the mixin's bespoke {@link #securityTxt(String)}
+	 * Extends {@link org.apache.juneau.rest.servlet.RestMixin.Builder} so the mixin's bespoke {@link #securityTxt(String)}
 	 * setter chains with true covariant returns alongside the inherited {@link RestBuilder}surface (e.g.
 	 * {@code path}, {@code roleGuard}).
 	 */
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/DebugConfig.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/DebugConfig.java
index 66c70ceb61..e062d71242 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/DebugConfig.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/debug/DebugConfig.java
@@ -71,7 +71,6 @@ public class DebugConfig {
 		public Builder rule(String target, Consumer<DebugRule.Builder> value) {
 			var b = DebugRule.create();
 			value.accept(b);
-			// TODO-20 Phase 2: Persist full DebugRule metadata per target.
 			return this;
 		}
 
@@ -189,7 +188,9 @@ public class DebugConfig {
 		return resolveInternal(context.getContext().getResourceClass(), context.getJavaMethod(), req);
 	}
 
-	@SuppressWarnings("unused")
+	@SuppressWarnings({
+		"unused" // Method and parameter are reflectively available to subclasses; kept for API stability.
+	})
 	private DebugResult resolveInternal(Class<?> resourceClass, Method method, HttpServletRequest req) {
 		var enabled = false;
 		if (req != null) {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/OpenApiMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/OpenApiMixin.java
index a338d3b2ae..050bf30013 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/OpenApiMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/OpenApiMixin.java
@@ -67,8 +67,7 @@ import org.apache.juneau.yaml.*;
  * ({@code -Djuneau.openapi.path=v1/openapi}), environment variable
  * ({@code JUNEAU_OPENAPI_PATH=v1/openapi}), or {@code Config} key
  * ({@code juneau.openapi.path = v1/openapi}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see the FINISHED-99 archive
- * (SVL resolution in {@code @RestOp(path)}) for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time (SVL resolution in {@code @RestOp(path)}).
  *
  * <p>
  * Override accepts bare token ({@code openapi}), leading slash ({@code /openapi}), trailing slash
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/RedocMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/RedocMixin.java
index 3e5fadb62d..48ddd728df 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/RedocMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/RedocMixin.java
@@ -47,8 +47,7 @@ import org.apache.juneau.rest.annotation.*;
  * ({@code -Djuneau.redoc.path=docs}), environment variable
  * ({@code JUNEAU_REDOC_PATH=docs}), or {@code Config} key
  * ({@code juneau.redoc.path = docs}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see the FINISHED-99 archive
- * (SVL resolution in {@code @RestOp(path)}) for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time (SVL resolution in {@code @RestOp(path)}).
  *
  * <p>
  * Override accepts bare token ({@code redoc}), leading slash ({@code /redoc}), trailing slash
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/SwaggerMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/SwaggerMixin.java
index 002f907881..a69c20106c 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/SwaggerMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/SwaggerMixin.java
@@ -46,8 +46,7 @@ import org.apache.juneau.rest.annotation.*;
  * ({@code -Djuneau.swagger.path=swagger}), environment variable
  * ({@code JUNEAU_SWAGGER_PATH=swagger}), or {@code Config} key
  * ({@code juneau.swagger.path = swagger}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see the FINISHED-99 archive
- * (SVL resolution in {@code @RestOp(path)}) for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time (SVL resolution in {@code @RestOp(path)}).
  *
  * <p>
  * Override accepts bare token ({@code api}), leading slash ({@code /api}), trailing slash
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/SwaggerUiMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/SwaggerUiMixin.java
index 44652e3656..8949521faa 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/SwaggerUiMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/docs/SwaggerUiMixin.java
@@ -48,8 +48,7 @@ import org.apache.juneau.rest.annotation.*;
  * ({@code -Djuneau.swaggerui.path=docs}), environment variable
  * ({@code JUNEAU_SWAGGERUI_PATH=docs}), or {@code Config} key
  * ({@code juneau.swaggerui.path = docs}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see the FINISHED-99 archive
- * (SVL resolution in {@code @RestOp(path)}) for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time (SVL resolution in {@code @RestOp(path)}).
  *
  * <p>
  * Override accepts bare token ({@code swagger}), leading slash ({@code /swagger}), trailing slash
@@ -81,7 +80,7 @@ import org.apache.juneau.rest.annotation.*;
  * </p>
  *
  * <p>
- * Sub-context inheritance from FINISHED-81 confines the {@code defaultAccept} contribution to this
+ * Sub-context inheritance confines the {@code defaultAccept} contribution to this
  * mixin's endpoints — the host's other endpoints retain their own content-negotiation defaults.
  * </p>
  *
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/health/HealthAggregator.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/health/HealthAggregator.java
index 77eb0e36e9..06633694a0 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/health/HealthAggregator.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/health/HealthAggregator.java
@@ -44,7 +44,9 @@ public class HealthAggregator {
 	 * @param context The REST context whose bean store supplies the indicators.
 	 * @return The indicator beans keyed by bean name.
 	 */
-	@SuppressWarnings("resource")  // BeanStore is not owned here; its lifecycle is managed by RestContext.
+	@SuppressWarnings({
+		"resource" // BeanStore is not owned here; its lifecycle is managed by RestContext.
+	})
 	public Map<String,HealthIndicator> indicators(RestContext context) {
 		return context.getBeanStore().getBeansOfType(HealthIndicator.class);
 	}
@@ -58,7 +60,9 @@ public class HealthAggregator {
 	 * @param res The response whose status code is set (200 healthy, 503 down).
 	 * @return The aggregated health payload.
 	 */
-	@SuppressWarnings("resource")  // BeanStore is not owned here; its lifecycle is managed by RestContext.
+	@SuppressWarnings({
+		"resource" // BeanStore is not owned here; its lifecycle is managed by RestContext.
+	})
 	public HealthResponse aggregate(RestContext context, Map<String,HealthIndicator> indicators, HealthProbe probe, RestResponse res) {
 		var out = new LinkedHashMap<String,ComponentHealth>();
 		var timeout = context.getBeanStore().getBean(HealthProbeSettings.class).map(HealthProbeSettings::getTimeout).orElse(Duration.ofSeconds(1));
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLoggerRule.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLoggerRule.java
index 2d79fd40d4..218f92d66d 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLoggerRule.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logger/CallLoggerRule.java
@@ -55,7 +55,9 @@ public class CallLoggerRule {
 	 */
 	public static class Builder {
 
-		@SuppressWarnings("unused")
+		@SuppressWarnings({
+			"unused" // BeanStore is injected for potential subclass use; not consumed in this builder.
+		})
 		private final BeanStore beanStore;
 		Predicate<Integer> statusFilter;
 		Predicate<HttpServletRequest> requestFilter;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/AdminMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/AdminMixin.java
index a65fdc0f56..ddac84b55e 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/AdminMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/AdminMixin.java
@@ -62,8 +62,7 @@ import org.apache.juneau.rest.guard.RateLimitGuard.BucketState;
  * prefix. Set via system property ({@code -Djuneau.admin.path=ops}), environment variable
  * ({@code JUNEAU_ADMIN_PATH=ops}), or {@code Config} key
  * ({@code juneau.admin.path = ops}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see the FINISHED-99 archive
- * (SVL resolution in {@code @RestOp(path)}) for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time (SVL resolution in {@code @RestOp(path)}).
  *
  * <p>
  * Override accepts bare token ({@code admin}), leading slash ({@code /admin}), trailing slash
@@ -274,7 +273,7 @@ public class AdminMixin {
 	 * <p>
 	 * Mirrors {@link AdminProvider.Builder}'s configuration methods on the mixin's own surface and forwards
 	 * each call to an underlying {@link AdminProvider.Builder}, which builds the shared worker the mixin
-	 * delegates to (TODO-145 &sect;2.3.1 / OQ-11).
+	 * delegates to.
 	 */
 	public static class Builder {
 
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/AdminProvider.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/AdminProvider.java
index f1c93cc1ba..0ae83ff520 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/AdminProvider.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/AdminProvider.java
@@ -36,7 +36,7 @@ import org.apache.juneau.rest.guard.RateLimitGuard.BucketState;
  * rate-limit-bucket inspection). The {@link AdminMixin} (mixin), {@link AdminResource} (child), and
  * {@link AdminServlet} (servlet) flavors are independent {@code @Rest} classes that each hold an
  * {@code AdminProvider} worker and delegate to it &mdash; so the three deployment forms cannot drift, and no
- * flavor is another flavor's worker (TODO-145 &sect;2.3.1).
+ * flavor is another flavor's worker.
  *
  * <h5 class='section'>See Also:</h5><ul>
  * 	<li class='jc'>{@link AdminMixin}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/EchoMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/EchoMixin.java
index df30db8d6d..5a2fe6e628 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/EchoMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/EchoMixin.java
@@ -48,8 +48,7 @@ import org.apache.juneau.rest.annotation.*;
  * ({@code -Djuneau.echo.path=introspect}), environment variable
  * ({@code JUNEAU_ECHO_PATH=introspect}), or {@code Config} key
  * ({@code juneau.echo.path = introspect}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see the FINISHED-99 archive
- * (SVL resolution in {@code @RestOp(path)}) for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time (SVL resolution in {@code @RestOp(path)}).
  *
  * <p>
  * Override accepts bare token ({@code echo}), leading slash ({@code /echo}), trailing slash
@@ -59,7 +58,7 @@ import org.apache.juneau.rest.annotation.*;
  * <b>Migration note (9.5.0):</b> Earlier development snapshots of this mixin mounted at both
  * {@code /echo/*} <i>and</i> {@code /debug/echo/*} as historical aliases on a single op. That
  * dual default has been collapsed to a single SVL-configurable mount as part of the
- * "single path per op" principle (see FINISHED-101). Deployers who relied on the
+ * "single path per op" principle. Deployers who relied on the
  * {@code /debug/echo/*} alias must now either set {@code -Djuneau.echo.path=debug/echo} or
  * compose a second instance with the override.
  *
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/RouteIndexMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/RouteIndexMixin.java
index e4afc3d4ab..0bf3be60b7 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/RouteIndexMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/RouteIndexMixin.java
@@ -49,8 +49,7 @@ import org.apache.juneau.rest.beans.*;
  * ({@code -Djuneau.routeindex.path=routes}), environment variable
  * ({@code JUNEAU_ROUTEINDEX_PATH=routes}), or {@code Config} key
  * ({@code juneau.routeindex.path = routes}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see the FINISHED-99 archive
- * (SVL resolution in {@code @RestOp(path)}) for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time (SVL resolution in {@code @RestOp(path)}).
  *
  * <p>
  * Override accepts bare token ({@code options}), leading slash ({@code /options}), or trailing
@@ -60,7 +59,7 @@ import org.apache.juneau.rest.beans.*;
  * <b>Migration note (9.5.0):</b> Earlier development snapshots of this mixin mounted at both
  * {@code /options} <i>and</i> {@code /routes} as historical aliases on a single op. That dual
  * default has been collapsed to a single SVL-configurable mount as part of the
- * "single path per op" principle (see FINISHED-101). Deployers who relied on the
+ * "single path per op" principle. Deployers who relied on the
  * {@code /routes} alias must now set {@code -Djuneau.routeindex.path=routes} or compose a
  * second instance with the override.
  *
@@ -208,7 +207,9 @@ public class RouteIndexMixin {
 		);
 	}
 
-	@SuppressWarnings("java:S3776") // Cognitive-complexity: linear walk over a small annotation list; splitting hurts JIT.
+	@SuppressWarnings({
+		"java:S3776" // Cognitive-complexity: linear walk over a small annotation list; splitting hurts JIT.
+	})
 	private static boolean isHiddenFromIndex(Method m) {
 		for (var aClass : REST_OP_ANNOTATIONS) {
 			var a = m.getAnnotation(aClass);
@@ -231,7 +232,9 @@ public class RouteIndexMixin {
 		return m.getDeclaringClass() == RouteIndexMixin.class;
 	}
 
-	@SuppressWarnings("java:S3776") // Same as isHiddenFromIndex — short loop, single concern.
+	@SuppressWarnings({
+		"java:S3776" // Same as isHiddenFromIndex — short loop, single concern.
+	})
 	private static String readSummary(Method m) {
 		for (var aClass : REST_OP_ANNOTATIONS) {
 			var a = m.getAnnotation(aClass);
@@ -248,7 +251,9 @@ public class RouteIndexMixin {
 		return "";
 	}
 
-	@SuppressWarnings("java:S3776") // Same as isHiddenFromIndex — short loop, single concern.
+	@SuppressWarnings({
+		"java:S3776" // Same as isHiddenFromIndex — short loop, single concern.
+	})
 	private static String readDescription(Method m) {
 		for (var aClass : REST_OP_ANNOTATIONS) {
 			var a = m.getAnnotation(aClass);
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/StatsMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/StatsMixin.java
index 344cadc72a..f3a6920772 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/StatsMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ops/StatsMixin.java
@@ -27,9 +27,9 @@ import org.apache.juneau.rest.stats.*;
  *
  * <p>
  * Single-responsibility op-mixin carved out of the former {@code BasicRestOperations} interface. Carries
- * the per-method {@link HtmlDocConfig @HtmlDocConfig} that customizes the {@code /stats} HTML page (per
- * OQ-8 &mdash; the per-method config travels with the op, while the host-wide navlinks/JSON-schema config
- * lives at the class level on {@link BasicRestServlet}).
+ * the per-method {@link HtmlDocConfig @HtmlDocConfig} that customizes the {@code /stats} HTML page.
+ * The per-method config travels with the op, while the host-wide navlinks/JSON-schema config
+ * lives at the class level on {@link BasicRestServlet}.
  *
  * @since 9.5.0
  */
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/AsyncResponseProcessor.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/AsyncResponseProcessor.java
index 0b9699afa3..e50e0dd19c 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/AsyncResponseProcessor.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/AsyncResponseProcessor.java
@@ -81,7 +81,7 @@ import org.apache.juneau.rest.*;
  * switches from {@code future.whenComplete(callback)} to {@code future.whenCompleteAsync(callback, executor)},
  * routing the response-handler work through the named {@link java.util.concurrent.Executor} bean. The MDC
  * snapshot (see below) is taken on the request thread <em>before</em> the executor routing so the MDC context
- * is always available regardless of which thread the executor picks (TODO-118).
+ * is always available regardless of which thread the executor picks.
  *
  * <h5 class='section'>Thread-local caveats</h5>
  * <p>
@@ -216,10 +216,10 @@ public class AsyncResponseProcessor implements ResponseProcessor {
 			}
 		});
 
-		// MDC bridge (TODO-117): snapshot request-thread MDC at dispatch time, then restore it on the
+		// MDC bridge: snapshot request-thread MDC at dispatch time, then restore it on the
 		// completion thread so log statements inside the whenComplete callback see the same diagnostic
 		// context (requestId, userId, etc.) that was set by upstream filters.
-		// NOTE: the MDC wrap happens BEFORE the executor routing (TODO-118) so the snapshot is always
+		// NOTE: the MDC wrap happens BEFORE the executor routing so the snapshot is always
 		// available regardless of which thread the executor picks.
 		var mdcSnapshot = opSession.getRestContext().isMdcAsyncPropagation()
 			? MdcAsyncListener.snapshot()
@@ -230,7 +230,7 @@ public class AsyncResponseProcessor implements ResponseProcessor {
 			mdcSnapshot
 		);
 
-		// TODO-118: if a per-op or resource-level completion executor is configured, route the callback
+		// If a per-op or resource-level completion executor is configured, route the callback
 		// through it via whenCompleteAsync; otherwise use the natural completion thread.
 		var executor = opSession.getContext().getAsyncCompletionExecutor();
 		if (executor != null)
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/MdcAsyncListener.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/MdcAsyncListener.java
index 83956baf51..598b38b94c 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/MdcAsyncListener.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/MdcAsyncListener.java
@@ -130,7 +130,9 @@ public final class MdcAsyncListener {
 	 *
 	 * @return A copy of the current MDC map, or {@code null}.
 	 */
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	public static Map<String, String> snapshot() {
 		if (!AVAILABLE)
 			return null;
@@ -185,7 +187,9 @@ public final class MdcAsyncListener {
 		};
 	}
 
-	@SuppressWarnings("java:S3011") // Reflective access to MDC methods — intentional; SLF4J is not a compile dep.
+	@SuppressWarnings({
+		"java:S3011" // Reflective access to MDC methods — intentional; SLF4J is not a compile dep.
+	})
 	static void setContextMap(Map<String, String> map) {
 		try {
 			SET_CONTEXT_MAP.invoke(null, map);
@@ -194,7 +198,9 @@ public final class MdcAsyncListener {
 		}
 	}
 
-	@SuppressWarnings("java:S3011") // Reflective access to MDC methods — intentional.
+	@SuppressWarnings({
+		"java:S3011" // Reflective access to MDC methods — intentional.
+	})
 	static void mdcClear() {
 		try {
 			CLEAR.invoke(null);
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ProblemDetailsProcessor.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ProblemDetailsProcessor.java
index d81959cc6a..cb33b311f1 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ProblemDetailsProcessor.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ProblemDetailsProcessor.java
@@ -182,7 +182,10 @@ public class ProblemDetailsProcessor implements ResponseProcessor {
 	 * @return The {@link Problem} to emit, or {@code null} when no mapper opined and the exception is not a
 	 * 	{@link BasicHttpException}.
 	 */
-	@SuppressWarnings({"unchecked", "rawtypes"})  // ProblemMapper#map is parameterized over the matched throwable subtype.
+	@SuppressWarnings({
+		"unchecked", // ProblemMapper#map is parameterized over the matched throwable subtype.
+		"rawtypes"   // ProblemMapper#map is parameterized over the matched throwable subtype.
+	})
 	private static Problem mapException(RestOpSession opSession, Throwable thrown) {
 		for (var mapper : resolveMappers(opSession, thrown.getClass())) {
 			var result = ((ProblemMapper) mapper).map(thrown);
@@ -200,7 +203,9 @@ public class ProblemDetailsProcessor implements ResponseProcessor {
 	 * consulted first; a single {@link ProblemMapper} bean (if no list is registered) is consulted as a
 	 * fallback. Registration order serves as the tiebreaker for mappers at the same hierarchy depth.
 	 */
-	@SuppressWarnings("resource") // RestOpSession owns this bean store lifecycle.
+	@SuppressWarnings({
+		"resource" // RestOpSession owns this bean store lifecycle.
+	})
 	private static List<ProblemMapper<?>> resolveMappers(RestOpSession opSession, Class<?> thrownClass) {
 		var bs = opSession.getBeanStore();
 		var candidates = new ArrayList<ProblemMapper<?>>();
@@ -235,7 +240,9 @@ public class ProblemDetailsProcessor implements ResponseProcessor {
 	}
 
 	private static Problem localize(RestOpSession opSession, Problem problem) {
-		@SuppressWarnings("resource") // RestOpSession owns this bean store lifecycle.
+		@SuppressWarnings({
+			"resource" // RestOpSession owns this bean store lifecycle.
+		})
 		var strategy = opSession.getBeanStore().getBean(ProblemLocalizationStrategy.class).orElse(ProblemLocalizationStrategy.IDENTITY);
 		var locale = opSession.getRequest().getLocale();
 		var result = strategy.localize(problem, locale);
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseProcessorList.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseProcessorList.java
index bd0bb0232e..efb4e5267b 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseProcessorList.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/processor/ResponseProcessorList.java
@@ -129,7 +129,9 @@ public class ResponseProcessorList {
 		return new Builder(beanStore);
 	}
 
-	@SuppressWarnings("unchecked")
+	@SuppressWarnings({
+		"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+	})
 	private static ResponseProcessor instantiate(Object o, BeanStore bs) {
 		if (o instanceof ResponseProcessor o2)
 			return o2;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestMixin.java
index 76ee53c295..82ca7a3f7e 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestMixin.java
@@ -47,7 +47,7 @@ import org.apache.juneau.rest.annotation.*;
  * The fluent programmatic-builder surface ({@link RestBuilder}/ {@link Builder}) lets a mixin be configured
  * programmatically rather than (or in addition to) by annotation &mdash; builder-supplied values take precedence
  * over {@link Rest @Rest} annotation values.  Use {@link #builder(Class)} for the common case, or subclass
- * {@link Builder} for capability mixins that add their own setters (TODO-143 Option B).
+ * {@link Builder} for capability mixins that add their own setters.
  *
  * <h5 class='section'>Reaching the host resource:</h5>
  *
@@ -87,7 +87,7 @@ public abstract class RestMixin {
 	private final AtomicReference<RestContext> context = new AtomicReference<>();
 
 	/**
-	 * The programmatic configuration builder stashed on this instance (TODO-143 &sect;2.4), or <jk>null</jk> when the
+	 * The programmatic configuration builder stashed on this instance, or <jk>null</jk> when the
 	 * mixin was constructed without a builder.  Mutable so it can be written by either the
 	 * {@link #RestMixin(RestBuilder<?>)} constructor or {@link Builder#build()}.  Read non-reflectively by
 	 * {@link RestContext} during mixin sub-context construction so builder-supplied values take precedence over
@@ -101,7 +101,7 @@ public abstract class RestMixin {
 	protected RestMixin() {}
 
 	/**
-	 * Builder-injection constructor (TODO-145 &sect;2.4 constructor trio).
+	 * Builder-injection constructor.
 	 *
 	 * @param builder The programmatic configuration builder.  May be <jk>null</jk>.
 	 */
@@ -178,7 +178,7 @@ public abstract class RestMixin {
 	 * Fluent builder for programmatically configuring a {@link RestMixin} subclass.
 	 *
 	 * <p>
-	 * Subclassable, self-typed (CRTP) flavor builder (TODO-143 Option B).  Capability mixins (e.g.
+	 * Subclassable, self-typed (CRTP) flavor builder.  Capability mixins (e.g.
 	 * {@code FaviconMixin}) extend this and add their own worker-config setters, which chain with true covariant
 	 * returns alongside the inherited {@link RestBuilder}surface.  For the common (non-subclassed) case use
 	 * {@link RestMixin#builder(Class)} which returns the concrete {@link DefaultBuilder} leaf.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestResource.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestResource.java
index e665823a18..70fe8d59f9 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestResource.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestResource.java
@@ -46,7 +46,7 @@ public abstract class RestResource {
 	private AtomicReference<RestContext> context = new AtomicReference<>();
 
 	/**
-	 * The programmatic configuration builder stashed on this instance (TODO-143 &sect;2.4), or <jk>null</jk> when the
+	 * The programmatic configuration builder stashed on this instance, or <jk>null</jk> when the
 	 * resource was constructed without a builder.  Mutable so it can be written by either the
 	 * {@link #RestResource(RestBuilder<?>)} constructor or {@link Builder#build()}.  Read non-reflectively by
 	 * {@link RestContext} during construction so builder-supplied values take precedence over {@code @Rest}
@@ -60,7 +60,7 @@ public abstract class RestResource {
 	protected RestResource() {}
 
 	/**
-	 * Builder-injection constructor (TODO-145 &sect;2.4 constructor trio).
+	 * Builder-injection constructor.
 	 *
 	 * @param builder The programmatic configuration builder.  May be <jk>null</jk>.
 	 */
@@ -225,7 +225,7 @@ public abstract class RestResource {
 	 * Fluent builder for programmatically configuring a {@link RestResource} subclass.
 	 *
 	 * <p>
-	 * Subclassable, self-typed (CRTP) flavor builder (TODO-143 Option B).  For the common (non-subclassed) case
+	 * Subclassable, self-typed (CRTP) flavor builder.  For the common (non-subclassed) case
 	 * use {@link RestResource#builder(Class)} which returns the concrete {@link DefaultBuilder} leaf.
 	 *
 	 * @param <R> The resource type produced by {@link #build()}.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
index 5dc3ebbc4d..184ed2a1c7 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
@@ -79,7 +79,7 @@ public abstract class RestServlet extends HttpServlet {
 	private final AtomicReference<Exception> initException = new AtomicReference<>();
 
 	/**
-	 * The programmatic configuration builder stashed on this instance (TODO-143 &sect;2.4), or <jk>null</jk> when the
+	 * The programmatic configuration builder stashed on this instance, or <jk>null</jk> when the
 	 * resource was constructed without a builder.  Mutable so it can be written by either the
 	 * {@link #RestServlet(RestBuilder<?>)} constructor or {@link Builder#build()} (the no-arg-only setter-stash path).
 	 * Read non-reflectively by {@link RestContext} during construction so builder-supplied values take precedence
@@ -93,7 +93,7 @@ public abstract class RestServlet extends HttpServlet {
 	protected RestServlet() {}
 
 	/**
-	 * Builder-injection constructor (TODO-145 &sect;2.4 constructor trio).
+	 * Builder-injection constructor.
 	 *
 	 * @param builder The programmatic configuration builder.  May be <jk>null</jk>.
 	 */
@@ -357,7 +357,7 @@ public abstract class RestServlet extends HttpServlet {
 	 * <p>
 	 * This is the subclassable, self-typed (CRTP) flavor builder.  Its {@code SELF} type parameter is left open so
 	 * a user subclass's bespoke setters chain with true covariant returns alongside the inherited
-	 * {@link RestBuilder}surface (TODO-143 Option B).  For the common case where the builder is not subclassed,
+	 * {@link RestBuilder} surface.  For the common case where the builder is not subclassed,
 	 * use {@link RestServlet#builder(Class)} which returns the concrete {@link DefaultBuilder} leaf.
 	 *
 	 * @param <R> The resource type produced by {@link #build()}.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/sse/SseResponseSupport.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/sse/SseResponseSupport.java
index 009f4451f0..48b7c5e534 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/sse/SseResponseSupport.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/sse/SseResponseSupport.java
@@ -99,7 +99,9 @@ public class SseResponseSupport implements AutoCloseable {
 	 * @return This object.
 	 * @throws IOException If an I/O error occurred.
 	 */
-	@SuppressWarnings("resource")
+	@SuppressWarnings({
+		"resource" // SSE stream resource lifecycle is managed by the servlet container.
+	})
 	public SseResponseSupport sendEvent(String name, Object data) throws IOException {
 		return sendEvent(new SseEvent(name, data == null ? null : data.toString()));
 	}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/staticfile/StaticFilesMixin.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/staticfile/StaticFilesMixin.java
index ebec2cff91..4986aec1db 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/staticfile/StaticFilesMixin.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/staticfile/StaticFilesMixin.java
@@ -43,8 +43,7 @@ import org.apache.juneau.rest.annotation.*;
  * ({@code -Djuneau.staticfiles.path=assets}), environment variable
  * ({@code JUNEAU_STATICFILES_PATH=assets}), or {@code Config} key
  * ({@code juneau.staticfiles.path = assets}) to change the runtime mount without subclassing.
- * Resolution happens once at {@link RestContext} construction time; see the FINISHED-99 archive
- * (SVL resolution in {@code @RestOp(path)}) for the full resolution chain.
+ * Resolution happens once at {@link RestContext} construction time (SVL resolution in {@code @RestOp(path)}).
  *
  * <p>
  * Override accepts bare token ({@code static}), leading slash ({@code /static}), trailing slash
@@ -54,7 +53,7 @@ import org.apache.juneau.rest.annotation.*;
  * <b>Migration note (9.5.0):</b> Earlier development snapshots of this mixin mounted at both
  * {@code /static/*} <i>and</i> {@code /htdocs/*} as historical convenience aliases &mdash; that
  * dual default has been collapsed to a single SVL-configurable mount as part of the
- * "single path per op" principle (see FINISHED-101). Deployers who relied on the {@code /htdocs/*}
+ * "single path per op" principle. Deployers who relied on the {@code /htdocs/*}
  * alias must now either set {@code -Djuneau.staticfiles.path=htdocs} or compose a second
  * resource mounted with the {@code htdocs} override. The default {@link StaticFiles} classpath
  * search root still walks both {@code static/} and {@code htdocs/} directories &mdash; only the
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStats.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStats.java
index 9b0f185333..a2b98aba7d 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStats.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStats.java
@@ -121,7 +121,9 @@ public class MethodExecStats {
 		 * @param value The setting value.
 		 * @return This object.
 		 */
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({
+			"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+		})
 		public Builder type(Class<?> value) {
 			type = (Class<? extends MethodExecStats>) value;
 			return this;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStore.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStore.java
index ba9ea52d84..d0c981536f 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStore.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/MethodExecStore.java
@@ -123,7 +123,9 @@ public class MethodExecStore {
 		 * @param value The setting value.
 		 * @return This object.
 		 */
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({
+			"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+		})
 		public Builder type(Class<?> value) {
 			type = (Class<? extends MethodExecStore>) value;
 			return this;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
index 2616d2cfa0..6d69915cc1 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
@@ -126,7 +126,9 @@ public class ThrownStore {
 		 * @param value The setting value.
 		 * @return This object.
 		 */
-		@SuppressWarnings("unchecked")
+		@SuppressWarnings({
+			"unchecked" // Type erasure on reflective/generic cast; element type is verified at call site
+		})
 		public Builder type(Class<?> value) {
 			type = (Class<? extends ThrownStore>) value;
 			return this;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/tracing/NoOpTracerHook.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/tracing/NoOpTracerHook.java
index 85e97ec94f..c32fef1e02 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/tracing/NoOpTracerHook.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/tracing/NoOpTracerHook.java
@@ -56,7 +56,9 @@ public final class NoOpTracerHook implements TracerHook {
 	 * incoming trace context is unparseable) can return {@link #INSTANCE} instead of implementing a
 	 * private equivalent.
 	 */
-	@SuppressWarnings("resource")  // Singleton; intentionally held for the process lifetime.
+	@SuppressWarnings({
+		"resource" // Singleton; intentionally held for the process lifetime.
+	})
 	public static final class NoOpScope implements Scope {
 
 		/** Process-wide singleton instance. */
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/tracing/TraceContextResponseProcessor.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/tracing/TraceContextResponseProcessor.java
index cf04f3f30a..0945bd85c8 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/tracing/TraceContextResponseProcessor.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/tracing/TraceContextResponseProcessor.java
@@ -104,10 +104,10 @@ public class TraceContextResponseProcessor implements ResponseProcessor {
 
 		var res = opSession.getResponse();
 
-		// Headers already flushed (e.g. streaming / SSE response) — cannot set; skip without throwing.
+		// Headers already flushed (e.g. streaming / SSE response) — body was also written; chain is done.
 		if (res.getHttpServletResponse().isCommitted()) {
 			LOG.log(Level.FINE, () -> "Response already committed; skipping traceparent/tracestate header injection.");
-			return NEXT;
+			return FINISHED;
 		}
 
 		res.setHeader(HEADER_TRACEPARENT, traceparent);
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/validation/BeanValidator.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/validation/BeanValidator.java
index 99a60d552b..a9399a55ba 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/validation/BeanValidator.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/validation/BeanValidator.java
@@ -186,7 +186,9 @@ public final class BeanValidator {
 		return getDefaultValidator();
 	}
 
-	@SuppressWarnings("resource")  // ValidatorFactory is intentionally not closed; it is cached for the process lifetime.
+	@SuppressWarnings({
+		"resource" // ValidatorFactory is intentionally not closed; it is cached for the process lifetime.
+	})
 	private static Validator getDefaultValidator() {
 		if (DEFAULT_PROVIDER_UNAVAILABLE.get())
 			return null;
diff --git a/juneau-utest/src/test/java/org/apache/juneau/transforms/BooleanFormat_Test.java b/juneau-utest/src/test/java/org/apache/juneau/transforms/BooleanFormat_Test.java
index 33fed0c0e1..96680e4276 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/transforms/BooleanFormat_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/transforms/BooleanFormat_Test.java
@@ -97,9 +97,10 @@ class BooleanFormat_Test {
 
 	@Test void b03_parse_nullAndBlank() {
 		for (var f : BooleanFormat.values()) {
-			assertNull(BooleanFormat.parse(null, f), "format=" + f);
-			assertNull(BooleanFormat.parse("", f), "format=" + f);
-			assertNull(BooleanFormat.parse("   ", f), "format=" + f);
+			var fmt = f;
+			assertThrows(IllegalArgumentException.class, () -> BooleanFormat.parse(null, fmt), "format=" + fmt);
+			assertThrows(IllegalArgumentException.class, () -> BooleanFormat.parse("", fmt), "format=" + fmt);
+			assertThrows(IllegalArgumentException.class, () -> BooleanFormat.parse("   ", fmt), "format=" + fmt);
 		}
 	}