Oggi pomeriggio ho lavorato ancora un pochino su JNotes. All’inizio ero tanto felice: ho corretto alcuni bug (anche gravi) nel core e ho sistemato qualche altro particolare che proprio non mi piaceva.
Ma questa felicità era desitanata a durare poco, troppo poco.
Dopo una mezz’oretta di lavoro ho deciso, infatti, di mettere da parte il core per cominciare un po’ a studiare la GUI così ho aperto il mio fidato manuale (credete davvero che ricordi a memoria tutti i nomi ed i parametri delle funzioni awt e swing?) alla ricerca delle classi per la gestione della tray icon e nel giro di pochi minuti ho buttato giù una piccola classe di prova.
Ancora gaio e gioioso compilo il tutto e lancio il programma: ovviamente le cose non vanno come previsto ma, da bravo programmatore, non mi scoraggio e, documentazione alla mano, ricomincio a controllare il listato.
Controllo una, due, tre volte. Cambio le istruzioni, modifico i blocchi, inserisco elementi per eseguire il debug e, alla fine, scopro che la colpa di tutto non è assolutamente mia bensì della malefica accopiata Compiz/Java; una breve ricerca con google mi porta, infatti, alla segnalazione di un bug sul sito sun: sembra che il metodo
SystemTray.isSupported()
restituisca “true” solo se Metacity o Kwin sono attivi.
“Nessun problema – mi dico – per ora eliminamo il controllo; più avanti penserò ad un modo alternativo per evitare problemi”. Detto fatto: via un paio di parentesi, fuori dalle scatole un paio di istruzioni condizionali e si ritorna alla carica.
Compilo, lancio, e di fronte ai miei occhi appare un tristissimo
java.lang.UnsupportedOperationException: The system tray is not supported on the current platform.
“Basta! Mo lancio Metacity: voglio proprio vedere che succede!”
Manco a dirlo, con Metacity tutto va alla perfezione.
Io, adesso, con chi me la dovrei prendere?