PDA

View Full Version : [JAVA] Errore X11 in applicazione grafica


mone.java
04-11-2008, 23:47
Salve a tutti, sto creando un gioco (anzi lo stò copiando) FrozenBubble in java, ogi tanto all'inizio mi dà il seguente errore:


4-nov-2008 23.29.28 sun.awt.X11.XToolkit processException
AVVERTENZA: Exception on Toolkit thread
java.lang.NullPointerException
at java.awt.Component$BltBufferStrategy.revalidate(Component.java:3982)
at java.awt.Component$BltSubRegionBufferStrategy.validateAndShow(Component.java:4074)
at javax.swing.BufferStrategyPaintManager.show(BufferStrategyPaintManager.java:249)
at javax.swing.RepaintManager.show(RepaintManager.java:1208)
at javax.swing.SwingPaintEventDispatcher.createPaintEvent(SwingPaintEventDispatcher.java:43)
at sun.awt.X11.XWindow.handleExposeEvent(XWindow.java:512)
at sun.awt.X11.XContentWindow.handleExposeEvent(XContentWindow.java:122)
at sun.awt.X11.XWindow.handleExposeEvent(XWindow.java:507)
at sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:1092)
at sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:1070)
at sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:471)
at sun.awt.X11.XToolkit.run(XToolkit.java:584)
at sun.awt.X11.XToolkit.run(XToolkit.java:519)
at java.lang.Thread.run(Thread.java:619)
4-nov-2008 23.29.28 sun.awt.X11.XToolkit processException
AVVERTENZA: Exception on Toolkit thread
java.lang.NullPointerException
at java.awt.Component$BltBufferStrategy.revalidate(Component.java:3982)
at java.awt.Component$BltSubRegionBufferStrategy.validateAndShow(Component.java:4074)
at javax.swing.BufferStrategyPaintManager.show(BufferStrategyPaintManager.java:249)
at javax.swing.RepaintManager.show(RepaintManager.java:1208)
at javax.swing.SwingPaintEventDispatcher.createPaintEvent(SwingPaintEventDispatcher.java:43)
at sun.awt.X11.XWindow.handleExposeEvent(XWindow.java:512)
at sun.awt.X11.XContentWindow.handleExposeEvent(XContentWindow.java:122)
at sun.awt.X11.XWindow.handleExposeEvent(XWindow.java:507)
at sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:1092)
at sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:1070)
at sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:471)
at sun.awt.X11.XToolkit.run(XToolkit.java:584)
at sun.awt.X11.XToolkit.run(XToolkit.java:519)
at java.lang.Thread.run(Thread.java:619)
4-nov-2008 23.29.28 sun.awt.X11.XToolkit processException
AVVERTENZA: Exception on Toolkit thread
java.lang.NullPointerException
at java.awt.Component$BltBufferStrategy.revalidate(Component.java:3982)
at java.awt.Component$BltSubRegionBufferStrategy.validateAndShow(Component.java:4074)
at javax.swing.BufferStrategyPaintManager.show(BufferStrategyPaintManager.java:249)
at javax.swing.RepaintManager.show(RepaintManager.java:1208)
at javax.swing.SwingPaintEventDispatcher.createPaintEvent(SwingPaintEventDispatcher.java:43)
at sun.awt.X11.XWindow.handleExposeEvent(XWindow.java:512)
at sun.awt.X11.XContentWindow.handleExposeEvent(XContentWindow.java:122)
at sun.awt.X11.XWindow.handleExposeEvent(XWindow.java:507)
at sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:1092)
at sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:1070)
at sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:471)
at sun.awt.X11.XToolkit.run(XToolkit.java:584)
at sun.awt.X11.XToolkit.run(XToolkit.java:519)
at java.lang.Thread.run(Thread.java:619)


Il problema e che lo fa solo ogni tanto. Spesso inoltre si verifica un'altro problema cioè lo schema di gioco mi viene disegnato tutto spostato di verso il basso come in figura.

http://img529.imageshack.us/img529/5296/schermata4as5.th.jpg (http://img529.imageshack.us/my.php?image=schermata4as5.jpg)http://img529.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)

uso Ubuntu 8.10 con la jdk6_u6.
Qualcuno può aiutarmi??
.

p.s. ho provato qualche volta con windows e ho notato che il primo errore si verifica sempre mentre il secondo mai....

javaboy
05-11-2008, 08:21
Nonostante il mio nome non sono un programmatore java quindi non so aiutarti.
Tieni conto però che X11 esegue le richieste in maniera asincrona quindi gli errori
potrebbero verificarsi molto dopo la riga che ha causato il problema rendendo quasi impossibile scoprire il problema. Utilizzando alcune librerie come ad esempio qt è possibile imporre a X11 di funzionare in maniera sincrona rendendo il debug più semplice. Magari è necessario fare qualcosa del genere anche con java.

banryu79
05-11-2008, 11:01
Il pc su cui stai facendo girare il gioco è a cpu singola?

@EDIT:
Inoltre, puoi postare il codice della classe da cui parte il processo di rendering?

Ancora, non so se è il tuo caso, guarda i sorgenti e vedi se questo (http://forums.java.net/jive/thread.jspa?threadID=47183&tstart=0)può essere il problema [l'ultimo post spiega il problema]