bvahdat commented on PR #28749: URL: https://github.com/apache/camel/pull/28749#issuecomment-6540752658
Thanks @davsclaus, all addressed in 838b5b6: - **Bare LF before the delimiter.** `parseBodyPartText` now removes exactly the terminator the previous line had (CRLF, bare LF, nothing for an empty part), which also fixes the `setLength(-2)` on an empty part. And rather than stripping the delimiter from the captured bytes afterwards, the body-part parser tells the buffer what belongs to the boundary (`excludeLastLineFromRawCapture`), so the capture ends where the text ends by construction; `stripBoundaryDelimiter` is gone. `senderFramingTheBoundariesWithBareLineFeedsIsVerifiedAndParsedAlike` in `MultipartSignedEntityAsReceivedTest` locks it in: signature valid, payload complete to the last byte, MIC over the same bytes. `EntityParserBodyPartTextTest` covers CRLF, bare LF, the empty part and that the capture ends with the text. - **Nested capture.** Captures nest now: one buffer, a mark per open capture, a stop ends the innermost; `skipToBoundary` excludes the outer delimiter the same way. Test `rawCapturesNest`. - **Setter visibility.** Package-private; `getSignedDataRaw()` returns a copy. - **Memory.** One copy: the stop copies the captured range once, nothing is copied again afterwards. - **Upgrade guide.** Header formatting (folded headers, no space after the colon) is named as a cause too, plus the bare-LF framing change; the same note added to the 4.22.3 and 4.18.6 sections. I will set 4.24.0 as fixVersion on CAMEL-26425 once you confirm the backport targets. Module build green locally: 157 tests, formatter unchanged. _Claude Code on behalf of @bvahdat._ -- 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]
