Fehler #493
Cannot rethrow string ... bei Fehler in der Kreditoren-Transaktion
100%
Beschreibung
Wenn Fehler im Transaktionsbereich auftreten (hier, bei einer Kreditorenbuchung), kommt die eigentliche Fehlermeldung nicht an.
Mit dieser Änderung in SL/DB.pm geht es dann:
@ -143,7 +143,8
@ sub with_transaction {
if ($error->isa('SL::X::DBError')) {
# gobble the exception
} else {
- $error->rethrow;
+ # $error->rethrow;
+ die $self->error;
}
Das Framework kommt aus einem Kundenprojekt SL::X, vielleicht fehlt hier was oder Sven und Moritz sind aus Versehen kollidiert.
Zugehörige Revisionen
SL::DB: Exception: kein rethrow auf SL::Locale::String-Objekte (t8)
Behebt #493 (redmine)
(cherry picked from commit 6d8c402cea10eae20890d839440cacd8eda8a48d)
Historie
Von Bernd Bleßmann vor fast 2 Jahren aktualisiert
Das Problem ist, wenn in einer Transaction ein Fehler geworfen wird, dessen Text mit t8 übersetzt ist.
In with_transaction wird geprüft, ob der Fehler ein geblesstes Objekt ist und dann wird das rethrow gemacht.
t8-Objekte sind geblesst, aber das rethrow geht nicht auf diesen. Folgender Patch hilft, evtl. kann das mal jemand prüfen, ob das ok oder Quatsch ist:
if (blessed $error) { if ($error->isa('SL::X::DBError')) { # gobble the exception + } elsif ($error->isa('SL::Locale::String')) { + die $self->error; } else { $error->rethrow; } } else { die $self->error; }
Von Bernd Bleßmann vor fast 2 Jahren aktualisiert
- Status wurde von Neu zu Gelöst geändert
- % erledigt wurde von 0 zu 100 geändert
Status geändert durch Changeset kivitendo|6d8c402cea10eae20890d839440cacd8eda8a48d.
SL::DB: Exception: kein rethrow auf SL::Locale::String-Objekte (t8)
Behebt #493 (redmine)