APAR status
Closed as program error.
Error description
Negative value displayed for Expire Date/Days in zOSMF Storage management plugin when the value set in the Management class is higher than 32768; similar issue in Data class 'Retention absolute day of the year' which was causing negative value to be displayed in UI beyond 32768. KNOWN IMPACT: The only impact is incorrect display in the Storage management plugin. The system works correctly under the covers and displaying the same value from ISMF works correctly.
Local fix
BYPASS/CIRCUMVENTION: Use ISMF to see the correct value
Problem summary
**************************************************************** * USERS AFFECTED: All user of Storage management plugin GUI * * and users of Storage management REST APIs in * * 3.2. * **************************************************************** * PROBLEM DESCRIPTION: Negative value displayed for Expire * * Date/Days in zOSMF Storage * * management plugin when the value set * * in the Management class is * * higher than 32768; similar issue in * * Data class 'Retention * * absolute day of the year' which was * * causing negative value to * * be displayed in UI beyond 32768. * * * * KNOWN IMPACT: * * The only impact is incorrect display * * in the Storage management * * plugin. The system works correctly * * under the covers and displaying the * * same value from ISMF works correctly. * ****************************************************************
Problem conclusion
The system incorrectly handled "Expiry date/days" fields, causing data overflow and misinterpretation when retention period values exceeded the capacity of 2-byte storage, despite the valid range extending to 93,000 days. Solution Architecture 1. Context-Aware Data Type Management - Implemented dynamic data type selection based on SMS-returned format indicators - Upgraded from 2-byte to 4-byte integer storage to accommodate full value range - Format interpretation distinguishes between date-based and day-count representations - 32-bit Value Extraction: Conditionally extracts different bit segments from the 32-bit integer: - Date mode: Splits into separate 8-bit and 16-bit components for year and day-of-year - Day-count mode: Extracts equal-sized bit segments (24-bit value) for total days - Bit selection driven by format flags to ensure correct interpretation 2. NOLIMIT Case Handling - Corrected flag-based detection logic for unlimited retention scenarios - Introduced internal tracking mechanism using existing API field - Propagates NOLIMIT status consistently across API responses and UI display to existing 'Format used for retention' field Requires CDD and Swagger documentation updates 3. Flag-Based Validation Framework - Hierarchical validation approach checking presence, special cases, and format type - Date format: Validates year and day-of-year components extracted from different bit positions - Day-count format: Applies bit masking to extract lower 24 bits, validates range [0, 93,000] - Graceful degradation: Logs errors without failing API calls for problematic entries 4. UI Layer Adaptations - Converted numeric fields to string type for flexible value representation - Updated filter mechanisms to handle string-based comparisons - Supports display of both numeric values and special indicators (e.g., NOLIMIT) 5. Multi-Layer Technical Implementation - C Layer: Reads full 32-bit values from SMS, applies flag-based conditional processing with selective bit extraction - JNI Boundary: Updated field signatures and transfer methods for 32-bit integers - Java Layer: Modified field types and accessor methods to handle extended range - Bit-Level Processing: Conditional extraction of 8-16 bit segments (date mode) or equal 24-bit segments (day-count mode) from 32-bit source 6. Documentation Requirements - Component Design Document updates for field specifications - API documentation (Swagger) schema changes - Programming guide updates for validation logic - User-facing help documentation revisions 7. Key Outcomes - Eliminates overflow errors for large retention periods - Ensures correct interpretation through conditional bit extraction - Maintains type safety with appropriate data structures - Implements non-disruptive error handling - Achieves consistency across system layers (C/JNI/Java/UI)
Temporary fix
Comments
APAR Information
APAR number
PH67801
Reported component name
Z/OSMF DFSMS ST
Reported component ID
5655S28SG
Reported release
320
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2025-08-19
Closed date
2026-05-12
Last modified date
2026-05-12
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UO07781
Modules/Macros
IZUSGBIN IZUSGEAR IZUSGHLP IZUSGJ64 IZUSGUTL
Fix information
Fixed component name
Z/OSMF DFSMS ST
Fixed component ID
5655S28SG
Applicable component levels
[{"Business Unit":{"code":"BU011","label":"Systems - zSystems software"},"Product":{"code":"SG19O"},"Platform":[{"code":"PF054","label":"z Systems"}],"Version":"320"}]
Document Information
Modified date:
12 May 2026