Exception bei threaded Zugriff auf Saldo.toString()

 
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 25
Dabei seit: 03 / 2009
Betreff:

Exception bei threaded Zugriff auf Saldo.toString()

 · 
Gepostet: 16.07.2010 - 09:15 Uhr  ·  #1
Hi,
für eine Serveranwendung nutze ich hbci4java in separaten Thread(groups). Meine aktuelle Impl. macht nur die reine HBCI4java Jobs innerhalb eines separaten Threads. Den Zugriff auf die Ergebnisse (GVRSaldoReq bzw.GVRKUms) und wegschreiben in die Datenbank etc. sollte passieren, NACHDEM der thread beendet ist. Der Zugriff auf GVRSaldoReq fkt. auch noch problemlos. Beim Zugriff auf die btag liste aus GVRKUms erhalte ich jedoch Exceptions. Der Debugger in Eclipse zeigt an:
Code
com.sun.jdi.InvocationException occurred invoking method

Das passiert, wenn es in den toString() Methoden zu Fehlern kommt. In Saldo.toString() wird HBCIUtils.getLocale() benötigt. Dort wird auf die locale Einstellung des aktuellen Threads zugegriffen:

Code
ThreadGroup group=Thread.currentThread().getThreadGroup();
return (Locale)HBCIUtilsInternal.locales.get(group);


Da dieser Zugriff in einem für HBCI nicht mehr bekannten Thread abläuft, kommt es hier zur NullPointerException.
Ausserhalb der Debugger-Umgebung kommt es zu ähnlichen Fehlern, die sich auf diese thread Problematik zurückführen lassen.

Meine Lösung sieht nun so aus, dass ich bereits innerhalb des HBCI-threads meine eigenen Datenstrukturen (Hibernate-Entities) befülle.
Gibt es noch einen anderen Weg um den HBCI-thread möglichst frei von Implementierungsdetails der anderen Anwendungs-Schichten zu halten ?

Gruß:Dominik
Gewählte Zitate für Mehrfachzitierung:   0