014-code opened a new pull request, #16411:
URL: https://github.com/apache/dubbo/pull/16411

   ## What is the purpose of the change?
   
   Closes #16403.
   
   Release the cached `HttpPostRequestDecoder` when a Triple REST request 
reaches a terminal state. This removes the synthetic request and parsed form 
data from Netty's static `DefaultHttpDataFactory`, preventing retained entries 
from accumulating after form requests.
   
   The cleanup is invoked after successful invocation completion and on error, 
cancellation, and HTTP/2 transport close paths. It is intentionally not 
performed immediately after argument decoding so multipart data remains 
available to application code during request handling.
   
   ### GitHub_issue
   
   Closes #16403
   
   ### Tests
   
   Added `completed form request releases post data` to `RestProtocolTest`.
   
   The test submits an `application/x-www-form-urlencoded` request, verifies 
the normal response, then asserts that 
`DefaultHttpDataFactory.requestFileDeleteMap` has no retained request entries.
   
   Passed:
   
   - `RestProtocolTest`: 104 tests, 0 failures
   - JaCoCo `verify`: passed
   - `DefaultHttpRequest.close()`: 100% line and branch coverage
   - `AbstractServerCallListener.closeRequest()`: 100% line coverage
   
   ## Checklist
   
   - [x] Make sure there is a 
[GitHub_issue](https://github.com/apache/dubbo/issues) field for the change.
   - [x] Write a pull request description that is detailed enough to understand 
what the pull request does, how, and why.
   - [x] Write necessary unit-test to verify your logic correction.
   - [x] Make sure gitHub actions can pass.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to