# ArithmeticException unter Ubuntu ;)



## Quaxli (29. Aug 2008)

Mal eine Frage an die Ubuntu-User: Eine ArithmeticException wird offensichtlich bei Euch an folgender Stelle geworfen:


```
....
  ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
  gc = ge.getDefaultScreenDevice().getDefaultConfiguration();
  	        
  looptime = (1000/[b]gd.getDisplayMode().getRefreshRate()[/b])*1000000;  //<<< hier
```

Zumindest scheint das sonst bei allen Nicht-Ubuntu-Rechnern zu funktionieren. Gibt es unter Ubuntu hier Besonderheiten zu berücksichtigen, wenn man sich die aktuelle Bildfrequenz des Monitors abholen will?
Mangels geeignetem OS kann ich da bei mir leider nicht rumprobieren...


----------



## maki (29. Aug 2008)

Wenn du mir ein lauffähiges Beispiel schreibst teste ich für dich


----------



## Quaxli (29. Aug 2008)

Also ein nicht-lauffähiges Beispiel steht : hier 

Und mal ein Stück Code zum Testen:



```
import java.awt.*;

public class Test {

	public static void main(String[] args) {


		GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
	  GraphicsDevice gd = ge.getDefaultScreenDevice();
	  
	  System.out.println("RefreshRate = " + gd.getDisplayMode().getRefreshRate());
	  long looptime = (1000/gd.getDisplayMode().getRefreshRate())*1000000;
	  System.out.println("Looptime = " + looptime);
		
	}

}
```


----------



## maki (29. Aug 2008)

Hier die Ausgabe, k.A. woher die Locking assertion failure kommt.

```
Locking assertion failure.  Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0xb73db767]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0xb73db8b1]
#2 /usr/lib/libX11.so.6(_XReply+0xfd) [0x7cbc21bd]
#3 /usr/lib/j2sdk1.5-sun/jre/lib/i386/xawt/libmawt.so [0x7ccb2dce]
#4 /usr/lib/j2sdk1.5-sun/jre/lib/i386/xawt/libmawt.so [0x7cc9cd77]
#5 /usr/lib/j2sdk1.5-sun/jre/lib/i386/xawt/libmawt.so [0x7cc9cef3]
#6 /usr/lib/j2sdk1.5-sun/jre/lib/i386/xawt/libmawt.so(Java_sun_awt_X11GraphicsEnvironment_initDisplay+0x26) [0x7cc9d136]
#7 [0xb13e3008]
#8 [0xb13dcb6b]
#9 [0xb13dcb6b]
#10 [0xb13da236]
#11 /usr/lib/j2sdk1.5-sun/jre/lib/i386/server/libjvm.so [0xb7671eec]
#12 /usr/lib/j2sdk1.5-sun/jre/lib/i386/server/libjvm.so [0xb7841ae8]
#13 /usr/lib/j2sdk1.5-sun/jre/lib/i386/server/libjvm.so [0xb7671d1f]
#14 /usr/lib/j2sdk1.5-sun/jre/lib/i386/server/libjvm.so(JVM_DoPrivileged+0x32d) [0xb76cf82d]
#15 /usr/lib/j2sdk1.5-sun/jre/lib/i386/libjava.so(Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2+0x3d) [0xb737930d]
#16 [0xb13e2898]
#17 [0xb13dca94]
#18 [0xb13da236]
#19 /usr/lib/j2sdk1.5-sun/jre/lib/i386/server/libjvm.so [0xb7671eec]
Locking assertion failure.  Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0xb73db767]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_lock+0x2e) [0xb73db81e]
#2 /usr/lib/libX11.so.6 [0x7cbc1518]
#3 /usr/lib/libX11.so.6(XGetVisualInfo+0x26) [0x7cbb80a6]
#4 /usr/lib/j2sdk1.5-sun/jre/lib/i386/xawt/libmawt.so [0x7cc9c0b9]
#5 /usr/lib/j2sdk1.5-sun/jre/lib/i386/xawt/libmawt.so [0x7cc9c303]
#6 /usr/lib/j2sdk1.5-sun/jre/lib/i386/xawt/libmawt.so [0x7cc9cfa1]
#7 /usr/lib/j2sdk1.5-sun/jre/lib/i386/xawt/libmawt.so(Java_sun_awt_X11GraphicsEnvironment_initDisplay+0x26) [0x7cc9d136]
#8 [0xb13e3008]
#9 [0xb13dcb6b]
#10 [0xb13dcb6b]
#11 [0xb13da236]
#12 /usr/lib/j2sdk1.5-sun/jre/lib/i386/server/libjvm.so [0xb7671eec]
#13 /usr/lib/j2sdk1.5-sun/jre/lib/i386/server/libjvm.so [0xb7841ae8]
#14 /usr/lib/j2sdk1.5-sun/jre/lib/i386/server/libjvm.so [0xb7671d1f]
#15 /usr/lib/j2sdk1.5-sun/jre/lib/i386/server/libjvm.so(JVM_DoPrivileged+0x32d) [0xb76cf82d]
#16 /usr/lib/j2sdk1.5-sun/jre/lib/i386/libjava.so(Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2+0x3d) [0xb737930d]
#17 [0xb13e2898]
#18 [0xb13dca94]
#19 [0xb13da236]
RefreshRate = 0
Exception in thread "main" java.lang.ArithmeticException: / by zero
	at de.mg.Test.main(Test.java:14)
```

Das alles unter Ubuntu 8.04 mit dem Sun JDK 1.5.0_16-b02.


----------



## maki (29. Aug 2008)

Den locking assertion failure bekomme ich mit folgender Anleitung weg (letzter Post): https://bugs.launchpad.net/ubuntu/+source/sun-java6/+bug/186356

Den anderen Bug scheint es bereits zu geben: http://bugs.sun.com/view_bug.do?bug_id=6636469
Bekomme beim Testprogramm die Meldung:

```
GRAPHICS DEVICE:

  isFullScreenSupported: false

DISPLAY MODES:

  1: 3120 x1050 @ 0Hz -1bit
```
Die Auflösung stimmt (Dual Screen), die Refreshrate natürlich nicht, scheint etwas mit dem XServer zu sein.

Nachtrag: So, jetzt solten die links wieder stimmen


----------



## Quaxli (29. Aug 2008)

Danke für Deine Hilfe


----------

