[LOG4J2-3805] NamedInstantPatternTest#compatibilityOfLegacyPattern fails in timezones with minute offsets (e.g., GMT+05:30)#3888
Merged
ppkarwasz merged 3 commits intoapache:2.xfrom Aug 21, 2025
Conversation
…imezone offsets The compatibilityOfLegacyPattern test fails in environments where the system default timezone has a non-zero minute offset (e.g., Asia/Kolkata, Asia/Kathmandu). Root cause: - SimpleDateFormat's X pattern truncates fractional offsets (e.g., +05:30 → +05). - DateTimeFormatter's X pattern preserves the minutes (+05:30). Since Log4j intentionally follows DateTimeFormatter’s behavior, the test should not assert equivalence in such environments. This change adds an assumption to skip the test when the system timezone offset is not a whole hour. This ensures deterministic builds for contributors in all regions, while still verifying correctness in whole-hour zones. Closes apache#3805
ppkarwasz
requested changes
Aug 19, 2025
Contributor
ppkarwasz
left a comment
There was a problem hiding this comment.
Hi @ramanathan1504,
Could you move the assumption to the beginning of the test, so it is easier to follow?
...j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/NamedInstantPatternTest.java
Outdated
Show resolved
Hide resolved
…ault zone Ensure legacy and modern formatting produce consistent results when the system default zone offset is a whole hour. Skip the test otherwise using assumptions.
Contributor
Author
|
|
ppkarwasz
approved these changes
Aug 21, 2025
Contributor
|
@ramanathan1504, thanks! 💯 Since the legacy formatter was removed in |
Contributor
Author
|
Thanks |
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.
The compatibilityOfLegacyPattern test fails in timezones with fractional offsets
(e.g., Asia/Kolkata). This happens because SimpleDateFormat truncates fractional
offsets (+05:30 → +05) while DateTimeFormatter preserves them.
This change skips the test in such environments, ensuring consistent builds.
fix #3885