I have many details to solve but one is more a problem than others.
My app is terribly slowed down under Leopard.
But now it becomes even more obvious why.
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.lang.StringCoding$ConverterSD.decode(StringCoding.java:142)
at java.lang.StringCoding.decode(StringCoding.java:228)
at java.lang.String.<init>(String.java:405)
at com.webobjects.foundation._NSStringUtilities.stringForBytes(_NSStringUtilities.java:110)
at com.webobjects.foundation._NSStringUtilities.stringForBytes(_NSStringUtilities.java:147)
at com.webobjects.foundation.NSPropertyListSerialization.propertyListFromData(NSPropertyListSerialization.java:1749)
at com.webobjects.appserver.WOResourceManager._stringsTable(WOResourceManager.java:539)
at com.webobjects.appserver.WOResourceManager._cachedStringsTable(WOResourceManager.java:567)
at com.webobjects.appserver.WOResourceManager._cachedStringForKey(WOResourceManager.java:581)
at com.webobjects.appserver.WOResourceManager._stringForKey(WOResourceManager.java:595)
at com.webobjects.appserver.WOResourceManager.stringForKey(WOResourceManager.java:624)
at com.easyshadow.global.utilities.ApplicationUtilities.translate(ApplicationUtilities.java:91)
My translate method does the following :
WOResourceManager rm = Application.application().resourceManager();
return rm.stringForKey(keyToTranslate,"MyStringsFileName",null,null,languages);
My localized .strings files are UTF-16.
I replaced the translate method with a wonder equivalent (or almost since it does not initialize properly, but that was just to prove woresourcemanager is faulty) :
ERXLocalizer.currentLocalizer().localizedStringForKeyWithDefault(keyToTranslate);
My app becomes responsive again and does not crash any more.
Does anyone have an idea why this happens?