Exception Handling führt zu invalider UI // Bug?

Allgemeine Fragen zur Entwicklung von und mit JVx.

Exception Handling führt zu invalider UI // Bug?

Postby schuettec » Mon Feb 29, 2016 2:52 pm

Hallo JVx-Team,
ich habe heute einige Probleme in unserer Anwendung festgestellt. Bei Exceptions in Business-Actions, verhindert das JVx-Exception Handling einige nachgelagerte Prozesse der UI. Dies führt dazu, dass Steuerelemente in einem invaliden Zustand verbleiben. Z.B. verbleibt ein Menu Item nach einer fehlerhaften Aktion im Zustand "geklickt/ausgewählt". Die UI hinterlegt daher dieses Item als wäre es aktuell ausgewählt.

Sichtbar wird der Effekt derzeit auch in der Beispiel-Anwendung JVxFirstApp.

Reproduktion:
  • Starten der Beispiel App ohne Datenbankserver
  • Anmelden mit Beispiel-Account
  • Aktion im Menü ausführen: Master Data -> DB Edit
  • Diese Aktion führt zu einer Exception, da die Datenbank nicht verfügbar ist.
  • Fehlerfenster schließen
  • Menü Master Data aufklappen, jedoch nicht mit der Maus auf DB Edit zeigen
  • Wechselt man nun durch die Menüs, sieht man dass dieser Menüeintrag auch nicht wieder zurückgesetzt wird.

Ich habe dieses Verhalten analysiert und festgestellt, dass JVx mit
Code: Select all
ExceptionHandler.raise(pThrowable)
die Exception der Action auffängt und eine SilentAbortException wirft. Diese wird jedoch durch das Framework nicht mehr aufgefangen sondern landet in den Swing Implementationen. Die nachgelagerten Prozesse von Swing zur Verwaltung der Zustände werden damit komplett übersprungen, da der AWT EventDispatcher die einzige Instanz ist, die zum Fangen von Ausnahmen in der Lage ist.

Das Verhalten des ExceptionHandlers ist auch entsprechend dokumentiert:
Code: Select all
/**
* Notifies the handler that an exception occured.
*
* A SilentAbortException is throws anyway, for breaking the normal code flow.
* [...]
*/

Kann es sein, dass es sich um einen Bug im Exception Handling handelt?
Ich denke es ist sicherlich nicht gewollt dass der normale Code Flow von Swing ebenfalls gebrochen wird.

Im Anhang habe ich eine gezippte Textdatei platziert die meine Analyse aufzeigt. Leider kann ich keine Textdateien hochladen.

Auf Wunsch erstelle ich auch ein Ticket im OSS, allerdings bin ich momentan noch kein Reporter.
Attachments
Bug Report.zip
Stack Trace Analyse. Zeigt, welche nachgelagerten Prozesse in Swing übersprungen werden.
(1.34 KiB) Downloaded 2 times
schuettec
 
Posts: 2
Joined: Mon Feb 29, 2016 2:14 pm

Re: Exception Handling führt zu invalider UI // Bug?

Postby Support@SIB » Mon Feb 29, 2016 3:50 pm

Vorabinfos:

Der Stack Trace könnte auch als code Element gepostet werden.
Soweit wir in unserem System erkennen konnten, wurde die Zuweisung als Reporter bereits um 14:30 durchgeführt?

Ein Ticket wäre in jedem Fall hilfreich!
User avatar
Support@SIB
 
Posts: 198
Joined: Mon Sep 28, 2009 1:56 pm

Re: Exception Handling führt zu invalider UI // Bug?

Postby schuettec » Mon Feb 29, 2016 4:19 pm

...

Ich öffne ein Ticket, Berechtigungsemail kam nach der Erstellung des Posts.
schuettec
 
Posts: 2
Joined: Mon Feb 29, 2016 2:14 pm

Re: Exception Handling führt zu invalider UI // Bug?

Postby Support@SIB » Mon Feb 29, 2016 4:58 pm

siehe Ticket FS#1574
User avatar
Support@SIB
 
Posts: 198
Joined: Mon Sep 28, 2009 1:56 pm


Return to Entwicklung