APAR status
Closed as program error.
Error description
Error Message: N/A . Stack Trace: N/A .
Local fix
Problem summary
The reported problem was caused when the ResourceBundle holds onto both the bundle values and the classloaders keys using Softreferences. So during the garbage collection, the related resource bundles were not removed and hence they were found still hung around, which would finally results OOM to occur.
Problem conclusion
The reported problem was resolved by implemeting the following changes. - Weak references are used for the class loader in the cache key. - A HashMap is used instead of a SoftCache for the cache. SoftCache provided the soft references for the values, which aren't always appropriate, and with automatic removal of entries when memory was getting tight, both could be handled directly. - To remove entries from the cache when either the resource bundle values in the cache or the requested class loaders get garbage collected. - Using a constant NOT_FOUND object as the cache value where a resource bundle couldn't be found. As previously the requested class loader(if not null) were used, so that the SoftCache entries would get automatically deleted when the class loader was garbage collected, but now it is handled directly by monitoring the class loader reference in the cache key.
Temporary fix
Comments
APAR Information
APAR number
PK84678
Reported component name
JAVA(1.3/1.4 CO
Reported component ID
5648C9800
Reported release
42A
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2009-04-14
Closed date
2009-06-18
Last modified date
2009-06-18
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
JAVA(1.3/1.4 CO
Fixed component ID
5648C9800
Applicable component levels
R038 PSY
UP
R130 PSY
UP
R131 PSY
UP
R13A PSY
UP
R13I PSY
UP
R13L PSY
UP
R13O PSY
UP
R13W PSY
UP
R140 PSY
UP
R14A PSY
UP
R14I PSY
UP
R14L PSY
UP
R14W PSY
UP
R310 PSY
UP
R31A PSY
UP
R31I PSY
UP
R31L PSY
UP
R31O PSY
UP
R31W PSY
UP
R410 PSY
UP
R41A PSY
UP
R41L PSY
UP
R41W PSY
UP
R420 PSY
UP
R42A PSY
UP
R42L PSY
UP
R42W PSY
UP
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SUPPORT","label":"IBM Worldwide Support"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"1.4.2","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
09 February 2022