> 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 two additional 
commits since the last revision:

 - Addressed whitespace error
   
   Signed-off-by: Sruthy Jayan <[email protected]>
 - Addressed review comments on the null check for the buffer allocation
   
   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/5dba6953..e42278fe

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=31270&range=08
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=31270&range=07-08

  Stats: 8 lines in 1 file changed: 8 ins; 0 del; 0 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

Reply via email to