fix: try fallback date patterns when mime4j rejects Date header#11224
Open
syyam wants to merge 1 commit into
Open
fix: try fallback date patterns when mime4j rejects Date header#11224syyam wants to merge 1 commit into
syyam wants to merge 1 commit into
Conversation
When DefaultFieldParser fails to parse a Date header, the sent date falls back to null, leaving the message without a timestamp in the list. This adds a set of common non-standard date patterns (day-optional, 2-digit year, ISO-8601, no-weekday variants) tried in order before giving up. Only legitimate parse failures are logged at WARN level. Fixes thunderbird#8714
Contributor
|
Missing report label. Set exactly one of: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #8714
When
DefaultFieldParser(mime4j) fails to parse aDate:header,getSentDate()currently returnsnullwith only a debug log. This leaves the message without a visible timestamp in the message list.This change adds a
tryFallbackDateParsing()helper that tries a list of common non-standard date formats found in real-world email headers — day-optional, 2-digit year, ISO-8601, and no-weekday variants. If a fallback matches, the parsed date is used. If all patterns fail,nullis returned and a WARN-level log is written with the raw header value so it can be diagnosed and new patterns added.Changes
MimeMessage.java: AddedFALLBACK_DATE_PATTERNSlist andtryFallbackDateParsing()helper; updatedgetSentDate()to invoke it on parse failure.Test plan