> Modern AIX7+ supports full POSIX TZ format (e.g., > TZ=CET-1CEST,M3.5.0,M10.5.0), but the current implementation in > mapPlatformToJavaTimezone() searches the tzmappings file using the complete > string including DST transition rules. The tzmappings file only contains the > base timezone identifier (e.g., CET-1CEST), causing the lookup to fail and > fall back to GMT offset calculation. > > This behavior differs from earlier AIX versions and IBM Java 8, which > truncated the TZ string at the first comma before performing the lookup, > successfully mapping to proper IANA timezone IDs. > > > Fix include the below : > Refactor the AIX timezone mapping implementation to support both modern and > legacy POSIX TZ formats: > > Extract mapping logic into new getJavaTimezoneFromPlatform() helper function > Implement two-phase lookup strategy: > Phase 1: Attempt to map the full POSIX TZ string (supports modern AIX7+) > Phase 2: If no match, truncate at first comma and retry (maintains backward > compatibility) > Fall back to GMT offset only if both lookups fail > > Exclude AIX from CustomTzIDCheckDST.java (validates POSIX DST rules directly) > Add new AIXTzMappingTest.java to validate AIX-specific behavior: > Successful mapping: CET-1CEST,M3.5.0,M10.5.0 → Europe/Paris > Successful mapping: MEZ-1MESZ,M3.5.0,M10.5.0/3 → Europe/Berlin > GMT fallback: Unknown timezone → GMT+HH:MM > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
Sruthy Jayan has updated the pull request incrementally with one additional commit since the last revision: Addressed review comments Signed-off-by: Sruthy Jayan <[email protected]> ------------- Changes: - all: https://git.openjdk.org/jdk/pull/31270/files - new: https://git.openjdk.org/jdk/pull/31270/files/3040cb87..ff5e1627 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=31270&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=31270&range=01-02 Stats: 144 lines in 2 files changed: 117 ins; 17 del; 10 mod Patch: https://git.openjdk.org/jdk/pull/31270.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/31270/head:pull/31270 PR: https://git.openjdk.org/jdk/pull/31270
