Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.java > #13026
| From | Patrick Roemer <sangamon@netcologne.de> |
|---|---|
| Newsgroups | de.comp.lang.java |
| Subject | Re: JUnit Test von JButton: Action wird nicht erkannt |
| Date | 2016-07-20 13:00 +0200 |
| Organization | news.netcologne.de |
| Message-ID | <nmnll7$9uq$1@newsreader4.netcologne.de> (permalink) |
| References | (2 earlier) <duqgrdFtso5U1@mid.individual.net> <nmbfkk$sk4$1@newsreader4.netcologne.de> <dv6mjhFqq9cU1@mid.individual.net> <nmlm94$vfk$1@newsreader4.netcologne.de> <dv7haoF2pteU1@mid.individual.net> |
Responding to Christian H. Kuhn:
> Am 19.07.2016 um 18:59 schrieb Patrick Roemer:
>> Responding to Christian H. Kuhn:
>> In beiden Fällen entsteht *keine* happens-before-Beziehung zwischen
>> irgendwas.
>
> JETZT bin ich verwirrt.
>
> Ich war der Ansicht, bei
>
> commandA();
> SwingUtilities.invokeAndWait(() -> {commandB});
> commandC();
> SwingUtilities.invokeAndWait(() -> {commandD});
>
> könnte ich mich darauf verlassen, dass die Reihenfolge A-B-C-D
> eingehalten wird, sofern A und C nur auf dem gerade laufenden
> aufrufenden Thread arbeiten, während bei dem entsprechenden Aufruf mit
> invokeLater() lediglich sicher ist, dass A vor C (auf dem Hauptthread)
> und B vor D (auf dem Swing-EDT) ausgeführt wird?
Gemäß wall-time ist dem auch so. Damit ist aber noch nicht garantiert,
dass C die Auswirkungen von Aktionen in B auch sieht. Und *das* ist,
worum es bei happens-before-Beziehungen geht.
>> Und was ein #invokeAndWait() in einem
>> #actionPerformed() suchen könnte, will ich glaube ich gar nicht so genau
>> wissen... ;)
>
> Nix direktes. Warum das eher dämlich wäre, habe ich schon begriffen :-)
> Es gibt aber Methoden, die könnten theoretisch vom EDT aus aufgerufen
> werden, dann bräuchten sie kein invoke...(). Oder von irgendeinem
> anderen Thread. Dann brauchen sie invoke. Den Swing-EDT kann man
> feststellen.
Klingt schon fishy. Wenn eine Methode aus unterschiedlichen Kontexten
aufgerufen werden kann, sollte der Kontext sie schlicht nicht
interessieren müssen. Das #invoke...() gehört dann in eine Schicht, die
den Kontext kennt, z.B. eben ins Presentation Model. Und Aufrufe, die
darüber laufen, sollten dann eben immer aus einem non-EDT-Thread kommen.
> Die throw-Klausel hat man aber trotzdem, wenn man die
> Exception des invoke nicht fangen mag.
Warum sollte man das nicht mögen? Eine InvocationTargetException will
man eigentlich nicht weiterpropagieren. Und eine InterruptedException
sollte man auch möglichst lokal behandeln.
> Das kann auch eine beliebig lange
> Kette von Methodenaufrufen sein. Und wenn keine dieser Methoden etwas
> Sinnvolles mit der Exception aus invokeAndWait() anfangen kann, landet
> die irgendwan in actionPerformed().
Das sollte eigentlich nicht passieren. Abgesehen davon: Ich kann mich
nicht erinnern, #invokeAndWait() je (außer eben in Tests) eingesetzt zu
haben. (Allerdings habe ich auch nur kleinere Hobbyprojekte mit Swing
gemacht.) Üblicherweise will man #invokeLater(). Aber auch da muss man
sich natürlich über eventuelle Exceptions Gedanken machen.
Viele Grüße,
Patrick
Back to de.comp.lang.java | Previous | Next — Previous in thread | Next in thread | Find similar
JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-14 01:09 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-14 18:26 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-14 19:47 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 00:08 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-15 22:04 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 22:53 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 23:09 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-15 23:44 +0200
Countdown Timer Design (was: JUnit Test von JButton: Action wird nicht erkannt) "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-16 23:44 +0200
Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 12:44 +0200
Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 15:49 +0200
Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 17:03 +0200
Re: Countdown Timer Design "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 15:59 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 14:59 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 16:06 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-19 18:59 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-19 22:35 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Patrick Roemer <sangamon@netcologne.de> - 2016-07-20 13:00 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-23 20:36 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-23 23:15 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt Wanja Gayk <brixomatic@yahoo.com> - 2016-07-19 23:02 +0200
Re: JUnit Test von JButton: Action wird nicht erkannt "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-20 12:33 +0200
GUI-Update über Swing-EDT (was: JUnit Test von JButton: Action wird nicht erkannt) "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 12:03 +0200
Re: GUI-Update über Swing-EDT Patrick Roemer <sangamon@netcologne.de> - 2016-07-15 22:43 +0200
Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-15 23:18 +0200
Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-16 15:24 +0200
Re: GUI-Update über Swing-EDT Patrick Roemer <sangamon@netcologne.de> - 2016-07-16 16:42 +0200
Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-16 23:05 +0200
Re: GUI-Update über Swing-EDT "Christian H. Kuhn" <qno-news@qno.de> - 2016-07-17 16:02 +0200
csiph-web