In einer Java-Aufgabe des Studiums kam ein spezieller RepaintManager für Java zum Einsatz, der auf Verletzungen der Single-Thread-Rule von Swing mit der Ausgabe von Stack-Traces auf der Konsole reagieren sollte.
Der Quellcode dieses RepaintManagers wurde aus Desktop Java Live April 2005 entnommen, benötigt werden die Klassen CheckingRepaintManager, CheckAndLogRepaintManager und eine eigene EDTRuleViolation-Klasse, die von RuntimeException ableitet und einen component-Konstruktor hat.
Aktiviert wird der eigene RepaintManager dann mit
RepaintManager.setCurrentManager(new CheckAndLogRepaintManager());
Wenn man dann ohne invokeLater- oder invokeAndWait-Methode auf grafische Swing-Elemente zugreift bekommt man Verletzungen der Single-Thread-Rule von Swing als Stack-Traces ("EDTRuleViolation") auf der Konsole gemeldet.
Ich sehe so direkt keine Copyright-Hinweise in dem PDF, aber ich habe mal davon abgesehen den Quellcode hier zu posten. Der Einsatz in eigenen, auch kommerziellen Projekten ist eigentlich eher unkritisch, da man diese Klassen nur zur Entwicklungszeit benötigt und nicht mit einem Projekt ausliefern wird.