10月 02, 2026 4:58:57 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-nio-127.0.0.1-auto-1"]
10月 02, 2026 4:58:57 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service [Tomcat]
10月 02, 2026 4:58:57 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet engine: [Apache Tomcat/10.1.46]
10月 02, 2026 4:58:57 下午 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring DispatcherServlet 'mvc'
10月 02, 2026 4:58:57 下午 org.springframework.web.servlet.FrameworkServlet initServletBean
信息: Initializing Servlet 'mvc'
10月 02, 2026 4:58:57 下午 org.hibernate.validator.internal.util.Version <clinit>
INFO: HV000001: Hibernate Validator 8.0.2.Final
10月 02, 2026 4:58:57 下午 org.springframework.web.servlet.FrameworkServlet initServletBean
信息: Completed initialization in 295 ms
10月 02, 2026 4:58:57 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-nio-127.0.0.1-auto-1-63747"]
ENV java=21.0.10 spring=6.2.11 tomcat=10.1.46.0 base=http://127.0.0.1:63747
TRACE filter REQUEST /entity thread=http-nio-127.0.0.1-auto-1-exec-2
TRACE pre REQUEST /entity context=true thread=http-nio-127.0.0.1-auto-1-exec-2
TRACE post REQUEST thread=http-nio-127.0.0.1-auto-1-exec-2
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-2
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-2
HTTP GET /entity status=201 content-type=application/json body={"id":"7"}
CHECK PASS 29 entity controls status and headers
TRACE filter REQUEST /object thread=http-nio-127.0.0.1-auto-1-exec-1
TRACE pre REQUEST /object context=true thread=http-nio-127.0.0.1-auto-1-exec-1
TRACE post REQUEST thread=http-nio-127.0.0.1-auto-1-exec-1
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-1
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-1
HTTP GET /object status=200 content-type=application/json body={"id":"7"}
CHECK PASS 29 object converted to JSON
CHECK PASS 29 body advice visits selected conversion
TRACE filter REQUEST /nothing thread=http-nio-127.0.0.1-auto-1-exec-3
TRACE pre REQUEST /nothing context=true thread=http-nio-127.0.0.1-auto-1-exec-3
TRACE post REQUEST thread=http-nio-127.0.0.1-auto-1-exec-3
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-3
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-3
HTTP GET /nothing status=200 content-type=none body=
CHECK PASS 29 null body does not imply 204
TRACE filter REQUEST /view thread=http-nio-127.0.0.1-auto-1-exec-4
TRACE pre REQUEST /view context=true thread=http-nio-127.0.0.1-auto-1-exec-4
TRACE post REQUEST thread=http-nio-127.0.0.1-auto-1-exec-4
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-4
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-4
HTTP GET /view status=200 content-type=text/html;charset=UTF-8 body=<p>receipt</p>
CHECK PASS 29 unannotated String resolves view
TRACE filter REQUEST /object thread=http-nio-127.0.0.1-auto-1-exec-5
TRACE pre REQUEST /object context=true thread=http-nio-127.0.0.1-auto-1-exec-5
10月 02, 2026 4:58:57 下午 org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver logException
警告: Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: No acceptable representation]
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-5
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-5
HTTP GET /object status=406 content-type=text/html;charset=utf-8 body=<!doctype html><html lang="en"><head><title>HTTP Status 406 – Not Acceptable</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 406 – Not Acceptable</h1><hr class="line" /><p><b>Type</b> Status Report</p><p><b>Message</b> Acceptable representations: [application&#47;json, application&#47;*+json].</p><p><b>Description</b> The target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request, and the server is unwilling to supply a default representation.</p><hr class="line" /><h3>Apache Tomcat/10.1.46</h3></body></html>
CHECK PASS 29 unacceptable representation 406
TRACE filter REQUEST /broken thread=http-nio-127.0.0.1-auto-1-exec-6
TRACE pre REQUEST /broken context=true thread=http-nio-127.0.0.1-auto-1-exec-6
TRACE complete REQUEST thread=http-nio-127.0.0.1-auto-1-exec-6
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-6
HTTP GET /broken status=500 content-type=application/json body={"code":"WRITE_ERROR"}
CHECK PASS 29 uncommitted serialization error can become 500
TRACE filter REQUEST /stream thread=http-nio-127.0.0.1-auto-1-exec-7
TRACE pre REQUEST /stream context=true thread=http-nio-127.0.0.1-auto-1-exec-7
TRACE concurrent REQUEST thread=http-nio-127.0.0.1-auto-1-exec-7
TRACE filter-exit REQUEST thread=http-nio-127.0.0.1-auto-1-exec-7
TRACE filter ASYNC /stream thread=http-nio-127.0.0.1-auto-1-exec-8
TRACE pre ASYNC /stream context=true thread=http-nio-127.0.0.1-auto-1-exec-8
TRACE complete ASYNC thread=http-nio-127.0.0.1-auto-1-exec-8
TRACE filter-exit ASYNC thread=http-nio-127.0.0.1-auto-1-exec-8
10月 02, 2026 4:58:57 下午 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet [mvc] threw exception
java.io.IOException: failure after flush
	at blog.spring.mvc.MvcLab$Api.lambda$stream$1(MvcLab.java:121)
	at org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBodyReturnValueHandler$StreamingResponseBodyTask.call(StreamingResponseBodyReturnValueHandler.java:110)
	at org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBodyReturnValueHandler$StreamingResponseBodyTask.call(StreamingResponseBodyReturnValueHandler.java:97)
	at org.springframework.web.context.request.async.WebAsyncManager.lambda$startCallableProcessing$4(WebAsyncManager.java:373)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)

10月 02, 2026 4:58:57 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [mvc] in context with path [] threw exception
java.io.IOException: failure after flush
	at blog.spring.mvc.MvcLab$Api.lambda$stream$1(MvcLab.java:121)
	at org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBodyReturnValueHandler$StreamingResponseBodyTask.call(StreamingResponseBodyReturnValueHandler.java:110)
	at org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBodyReturnValueHandler$StreamingResponseBodyTask.call(StreamingResponseBodyReturnValueHandler.java:97)
	at org.springframework.web.context.request.async.WebAsyncManager.lambda$startCallableProcessing$4(WebAsyncManager.java:373)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)

RAW HTTP/1.1 200 
Content-Type: text/plain
Transfer-Encoding: chunked
Date: Fri, 02 Oct 2026 08:58:57 GMT
Connection: close

6
first


CHECK PASS 29 after flush client retains 200 and partial body
CHECK PASS producer executor terminated
10月 02, 2026 4:58:57 下午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["http-nio-127.0.0.1-auto-1-63747"]
10月 02, 2026 4:58:57 下午 org.apache.catalina.core.StandardService stopInternal
信息: Stopping service [Tomcat]
10月 02, 2026 4:58:57 下午 org.apache.catalina.core.ApplicationContext log
信息: Destroying Spring FrameworkServlet 'mvc'
10月 02, 2026 4:58:57 下午 org.apache.catalina.loader.WebappClassLoaderBase checkThreadLocalsForLeaks
警告: You need to add "--add-opens=java.base/java.lang=ALL-UNNAMED" to the JVM command line arguments to enable ThreadLocal memory leak detection. Alternatively, you can suppress this warning by disabling ThreadLocal memory leak detection.
10月 02, 2026 4:58:57 下午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesRmiTargets
警告: You need to add "--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED" to the JVM command line arguments to enable RMI Target memory leak detection. Alternatively, you can suppress this warning by disabling RMI Target memory leak detection.
10月 02, 2026 4:58:57 下午 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["http-nio-127.0.0.1-auto-1-63747"]
10月 02, 2026 4:58:57 下午 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["http-nio-127.0.0.1-auto-1-63747"]
CHECK PASS web application context closed
CHECK PASS MVC task executor terminated
CHECK PASS Tomcat listening port closed
CHAPTER 29 PASS checks=12
