Compiz-Fusion und Java/Swing. Hölle.

Status
Nicht offen für weitere Antworten.

oliver1974

Aktives Mitglied
Hallo zusammen:

Ich bin immer wieder überrascht, wie wenig man zu dem Problem Java / Swing / (Compiz/Bery/Compiz-Fusion) findet.

Sun betrachtet ja mittlerweile die Probleme von Swing in Zusammenspiel mit Compiz/Beryl (nun
Compiz-Fusion) als gefixed.

Siehe auch
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6429775

ist er aber nicht.

Konkret bei mir habe ich allerdings nicht mehr den alten, gefürchteten "graue Fenster" -Bug, sondern, viel subtiler und gemeiner, was ganz anderes.... erst scheint alles zu gehen, aber jedes 5. mal oder so zersägt es jeden beliebigen Dialog von Netbeans... insbesondere lustig beim häufig gebrauchten "Find" Dialog. Ganz toll.

Manchmal grau, manchmal riesig resized.... dann wechselt er wieder die Position usw.

Hölle.

Ich will mir gar nicht ausdenken, was für komische Verhaltensweisen manche andere Swing-Applikationen bei diversen Maschinen zeigen, das dürfte ja eine Lust werden, zu supporten (für den, der das beruflich macht..), erklär doch mal einen Kunden für den du eine Anwendung geschrieben hast:

"..ähh, nein, Compiz müssen sie abschalten...... sonst läuft das nicht sauber... hmm, ja ich weiß das andere Anwendungen damit gut laufen... ja, ich weiß dass sie Compiz/Compiz-Fusion/Beryl mögen.. aber es geht nun mal halt nicht anders.."

Der Gag ist ja, dass Swing als unproblematischer auf verschiedenen Plattformen galt (und gilt) als SWT.. aber so langsam bekriechen mich Zweifel, vor allem wenn ich dann in die Sourcen von Swing reinsehe,
WIE da überhaupt festgestellt wird, welcher Windowmanager läuft... da wird hardcodiert nach dem Namen gefragt.. benennt sich mal ein Windowmanager um.. (* Peng * Compiz -> Beryl damals) schon
fallen da Sonderbehandlungsmethoden für den Fall raus.

Noch erstaunlicher, wie wenig man zu dem Thema im Netz findet.

Kommt schon Leute, ist "Java on the Desktop" so tot? Vor allem auf Linux Kisten?

Ich vote jedenfalls für den Bug bei SUN, das kann echt nicht sein dass die das aussitzen.. wenn das mit den gleichen Elan angegangen wird die die Java - Sound - Api sehe ich schwarz.
(Ach ja, kann nicht voten da "closed", ganz toll).

Und Ideen à la "Wer brauch schon 3D-Desktops" bringen einen doch
auch nicht voran... und wenn die gesamte Programmiererschar old-school auf 2d-Deskops bleibt... da draussen sind genug Anwender, die finden die 3D-Desktops dermassen sexy, das wird mit Sicherheit ein Trend... Viele Distris werden das in Zukunft einfach defaultmäßig aktivieren, und dann haben wir den Ärger.

Der -oft genannte- Fix AWT_TOOLKIT=MToolkit zu setzen, ist ein Hack, nicht mehr... der bestenfalls halb geht.. bei mir ging daraufhin sporadisch die Tastatur unter Java nicht mehr. Mittlerweile (Java letzte Version... sitze gerade nicht davor aber irgend was >= 6u1) knallt beim Setzen dieser Variable die Tastatureingabe sofort weg.

Aber wie gesagt, der Fix war eigentlich damals schon nicht wirklich zu gebrauchen.

Ich habe im Compiz-Forum das auch noch mal angestoßen, aber ich befürchte, die sagen einfach das Problem
liegt bei SUN....

Any Ideas?
 
oliver1974 hat gesagt.:
Live with it. for now...
Viel ist da zur Zeit nicht zu machen, ich denke allerdings das der entsprechende Code in Java in Zukunft überarbeitet wird. Auf der anderen Seite sind weder Compiz noch Beryl, noch Compiz-Fusion als stabil, geschweige denn als Mature zu bezeichnen. Wer es trotzdem verwendet, ist sich der Probleme bewußt.
 
Ja, ich bin mir auch bewusst, dass Compiz-Fusion (Beryl lasse ich jetzt mal aussen vor, wird ja nicht mehr weiterentwickelt) nicht "mature" ist.... ist schon klar.

Mich ärgert aber etwas das Verhalten von SUN, die mal eben einen Bug auf "closed" stellen, was man aber mit vermutlich wenig Aufwand festgestellt hätte das dem nicht so ist..... zudem das bei der ureigenen Netbeans IDE ja auch noch so verschärft auftritt.

Erschwerend kommt hinzu, dass ich bisher so massive Probleme nirgendwo sonst beobachten konnte... Compiz-Fusion läuft ansonsten gemessen an der Versionsnummer ziemlich stabil... alle anderen Anwendungen laufen recht gut, nur dieser Ausreisser der Java-Apps lässt einem als Java-Entwickler doch die Seele bluten!


Auf der anderen Seite bin ich etwas fassungslos, wie stark sich im Netz doch "Halb-Lösungen" wie dieser AWT_TOOLKIT=MToolkit - Hack verbreiten... Jeder, der etwas länger mit einer komplexen Java-App arbeitet insbesondere Netbeans, hätte dann irgendwann mal gemerkt, dass da nicht mehr so alles funktioniert.. (bisher hatte das dann jeder gemerkt, denn ich zumindest darauf aufmerksam gemacht habe... wir haben das Thema ja schon in anderen Foren durchgekaut). Stattdessen wird dies allseits als "Lösung" angepriesen.. na ja. Vielleicht funktioniert das ja bei irgend jemanden....

Nun, zumindest habe ich einen Bugreport gefunden, der recht aktuell ist und das gleiche beschreibt:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6509038

Halleluja! Hab auch gleich mal gevoted und noch einen Kommentar gelassen....

Grundsätzlich erscheint mir der Ansatz, wie in SWING festgestellt wird, was für ein Window-Manager läuft, aber auch extrem seltsam... ich habe schon zu Beryl - Zeiten in die Java-Sourcen geschaut, und irgendwie ist das schon strange, dass da hardcodiert nach den Namen der WM gefragt wird.... Als aus compiz sich beryl abspaltete, wurden gleich einige Fixes nicht mehr ausgeführt, weil die VM den Namen "Beryl" nicht kannte.. klasse.

Okay, ich kenn mich mit den Interna der VM bzw. Swing nicht so aus, aber wie auch andere im obigen genannten Bugreport vermute ich auch: Das muss doch geschickter gehen!

Hoffen wir das beste und harren der Dinge!
 
Ich kenne den Bug, verwende selbst Beryl, hätte ihn auch gerne gelöst, kann aber auch absolut die Position von SUN verstehen:
But this WM is unsupported for now and so the priority of this bug is
very low. So, I'll keep it opened but will not work on it until some sunny day I'll have
to spend on a beach 🙂 or someone will submit fix for the problem.
 
oliver1974 hat gesagt.:
Mich ärgert aber etwas das Verhalten von SUN, die mal eben einen Bug auf "closed" stellen, was man aber mit vermutlich wenig Aufwand festgestellt hätte das dem nicht so ist..... zudem das bei der ureigenen Netbeans IDE ja auch noch so verschärft auftritt.
Wie kommst du denn darauf das es sich einfach lösen lässt?
 
Sun hat trotzdem ne Bug Policy mit der Einstellung "Solange der Bug bei uns net auftritt oder wir Probleme haben, interessierts uns nicht"

Bestes Bsp ist der Broadcast unter Windows! Unter Windows gehts nicht, unter Linux schon!
Workaround, mach ne schleife und schick an alle..

Oder arabische Zeichen im Texteingabefeld bei russischen Windows + KDE + java 1.4! Auch sehr geil!
 
Wildcard hat gesagt.:
Wie kommst du denn darauf das es sich einfach lösen lässt?

Habe ich mit keiner Silbe behauptet.

Ich schrieb, dass man relativ einfach hätte feststellen können, dass der Fix nicht komplett
funktioniert, indem man z.B. einfach mal 1 Tag mit Netbeans gearbeitet hätte.. und dort die Dialoge
mal beobachtet hätte.

Diesen Bug zu closen mit "closed, fixed" legt die Vermutung nahe, dass die Prüfung doch eher ..
na ja, "auf die Schnelle" erfolgt ist... zumindest bekommt man den Eindruck.

"Soo, mal eine Swing-Applikation starten...Hey, die Fenster werden jetzt korrekt gerendert... Hmm sieht
gut aus.. Mach das Ding mit "fixed" zu."

Vorsicht, das war jetzt ironisch.

Ich hoffe, dem war nicht so, und möchte das auch nicht unterstellen, aber irgendwie hinterlässt das schon
einen solchen Eindruck, die Kommentare waren ja auch im Bug-Report entsprechend.

Ach ja.. alle Interessierten mal bitte VOTEN für den Bug, danke .. ;-)
(den letztgenannten, noch offenen Report nehmen..)
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben