The vino-client java VNC client crashes when DISPLAY is set to the second head of my desktop:
rab@loris> cat `which vncviewer`
#!/bin/sh
exec java -jar /usr/share/gnome/vino/vino-client.jar ${1+"$@"}
rab@loris> DISPLAY=:0.1 vncviewer :0
java.lang.ArrayIndexOutOfBoundsException: 1
at sun.awt.X11GraphicsEnvironment.getDefaultScreenDevice(X11GraphicsEnvironment.java:218)
at java.awt.Window.init(Window.java:354)
at java.awt.Window.<init>(Window.java:407)
at java.awt.Frame.<init>(Frame.java:402)
at java.awt.Frame.<init>(Frame.java:367)
at vncviewer.Dialog.<init>(Dialog.java:34)
at vncviewer.OptionsDialog.<init>(OptionsDialog.java:30)
at vncviewer.CConn.<init>(CConn.java:95)
at vncviewer.VNCViewer.run(VNCViewer.java:151)
at java.lang.Thread.run(Thread.java:619)
Exception in thread "Thread-1" java.lang.ArrayIndexOutOfBoundsException: 1
at sun.awt.X11GraphicsEnvironment.getDefaultScreenDevice(X11GraphicsEnvironment.java:218)
at java.awt.Window.init(Window.java:354)
at java.awt.Window.<init>(Window.java:407)
at java.awt.Frame.<init>(Frame.java:402)
at java.awt.Frame.<init>(Frame.java:367)
at vncviewer.Dialog.<init>(Dialog.java:34)
at vncviewer.MessageBox.<init>(MessageBox.java:30)
at vncviewer.MessageBox.<init>(MessageBox.java:61)
at vncviewer.VNCViewer.run(VNCViewer.java:163)
at java.lang.Thread.run(Thread.java:619)
rab@loris>
But it works when DISPLAY is set to the first screen:
rab@loris> DISPLAY=:0.0 vncviewer :0
Java Accessibility Bridge for GNOME loaded.
CConn: connected to host localhost port 5900
CConnection: Server supports RFB protocol version 3.3
CConnection: Using RFB protocol version 3.3
CConn: Using pixel format depth 24 (32bpp) big-endian rgb888
CConn: Using ZRLE encoding
<it works>

EVALUATION
I have successfully tested the fix on Linux and (with help from
interested parties) on solaris.
The fix is to check if the number of screens reported by
XineramaGetInfo is greater than reported by XScreenCount and
only enable xinerama support if that's the case.

2008-03-27

EVALUATION
Halton,
You're using xinerama. Try turning that off. Then try running a java app with DISPLAY set to :0.1

2008-03-25

EVALUATION
Setup dual monitor envrionment both on sparc and x86, could not reproduce this bug.
Attach my x86 xorg.conf for your referrence.