JDK-4780640 : JAVA2D Multi-monitor problem - Dome display card
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 1.4.1
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_8
  • CPU: sparc
  • Submitted: 2002-11-18
  • Updated: 2003-02-03
  • Resolved: 2002-12-09
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other Other
1.4.1_03 03Fixed 1.4.2Fixed
Description
Configuration:
  Solaris Sparc,
  first jdk version the bug manifests: 1.4.1
  Framebuffers:
   - any color framebuffer (ffb, pgx??)
   - Dome grayscale Md2 dual output framebuffer
  Start the X server with three screens:
   - screen 0 - color
   - screens 1, 2 - grayscal

  Run the attached application with NO_J2D_DGA env. variable set, it
  crashes with the following stack trace:
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0xF34398C8
Function=Java_sun_java2d_loops_MaskFill_MaskFill+0x22AA8
Library=/net/jano/export/disk06/java2d/tdv/MantisEA.ws/build/solaris-sparc/lib/sparc/libawt.so

Current Java thread:
	at sun.java2d.loops.Blit.Blit(Native Method)
	at sun.java2d.pipe.DrawImage.blitSurfaceData(DrawImage.java:621)
	at sun.java2d.pipe.DrawImage.renderSurfaceData(DrawImage.java:346)
	at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:66)
	at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:733)
	at sun.java2d.SunGraphics2D.copyImage(SunGraphics2D.java:2692)
	at sun.java2d.SunGraphics2D.drawTranslatedRenderedImage(SunGraphics2D.java:2484)
	at sun.java2d.SunGraphics2D.drawRenderedImage(SunGraphics2D.java:2325)
	at DisplayJAI.paintComponent(DisplayJAI.java:130)
	- locked <0xf3881f58> (a DisplayJAI)
	at javax.swing.JComponent.paint(JComponent.java:808)
	at javax.swing.JComponent.paintChildren(JComponent.java:647)
	- locked <0xf4005c10> (a java.awt.Component$AWTTreeLock)
	at javax.swing.JComponent.paint(JComponent.java:817)
	at javax.swing.JComponent.paintChildren(JComponent.java:647)
	- locked <0xf4005c10> (a java.awt.Component$AWTTreeLock)
	at javax.swing.JComponent.paint(JComponent.java:817)
	at javax.swing.JLayeredPane.paint(JLayeredPane.java:555)
	at javax.swing.JComponent.paintChildren(JComponent.java:647)
	- locked <0xf4005c10> (a java.awt.Component$AWTTreeLock)
	at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4786)
	at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4732)
	at javax.swing.JComponent.paint(JComponent.java:798)
	at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
	at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
	at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
	at java.awt.Container.paint(Container.java:1312)
	at sun.awt.RepaintArea.paint(RepaintArea.java:177)
	at sun.awt.motif.MComponentPeer.handleEvent(MComponentPeer.java:402)
	at java.awt.Component.dispatchEventImpl(Component.java:3681)
	at java.awt.Container.dispatchEventImpl(Container.java:1627)
	at java.awt.Window.dispatchEventImpl(Window.java:1599)
	at java.awt.Component.dispatchEvent(Component.java:3480)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:451)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

Dynamic libraries:
0x10000 	/net/coast/export/share/ws/MantisEA.ws/build/solaris-sparc/bin/java
0xff360000 	/usr/lib/libthread.so.1
0xff3a0000 	/usr/lib/libdl.so.1
0xff280000 	/usr/lib/libc.so.1
0xff260000 	/usr/platform/SUNW,Ultra-1/lib/libc_psr.so.1
0xfe400000 	/net/jano/export/disk06/java2d/tdv/MantisEA.ws/build/solaris-sparc/lib/sparc/client/libjvm.so
0xff200000 	/usr/lib/libCrun.so.1
0xff1e0000 	/usr/lib/libsocket.so.1
0xff100000 	/usr/lib/libnsl.so.1
0xff1b0000 	/usr/lib/libm.so.1
0xff0e0000 	/usr/lib/libsched.so.1
0xff230000 	/usr/lib/libw.so.1
0xff0a0000 	/usr/lib/libmp.so.2
0xff070000 	/net/jano/export/disk06/java2d/tdv/MantisEA.ws/build/solaris-sparc/lib/sparc/native_threads/libhpi.so
0xff040000 	/net/jano/export/disk06/java2d/tdv/MantisEA.ws/build/solaris-sparc/lib/sparc/libverify.so
0xfe3c0000 	/net/jano/export/disk06/java2d/tdv/MantisEA.ws/build/solaris-sparc/lib/sparc/libjava.so
0xfe3a0000 	/net/jano/export/disk06/java2d/tdv/MantisEA.ws/build/solaris-sparc/lib/sparc/libzip.so
0xfdf90000 	/usr/lib/locale/en_US/en_US.so.2
0xf3400000 	/net/jano/export/disk06/java2d/tdv/MantisEA.ws/build/solaris-sparc/lib/sparc/libawt.so
0xfdc80000 	/net/jano/export/disk06/java2d/tdv/MantisEA.ws/build/solaris-sparc/lib/sparc/libmlib_image.so
0xfdc10000 	/net/jano/export/disk06/java2d/tdv/MantisEA.ws/build/solaris-sparc/lib/sparc/motif21/libmawt.so
0xf3180000 	/usr/lib/libXm.so.4
0xfbb90000 	/usr/openwin/lib/libXt.so.4
0xfdda0000 	/usr/openwin/lib/libXext.so.0
0xfbae0000 	/usr/openwin/lib/libXtst.so.1
0xf3080000 	/usr/openwin/lib/libX11.so.4
0xfb9a0000 	/usr/openwin/lib/libdps.so.5
0xfbac0000 	/usr/openwin/lib/libSM.so.6
0xfba90000 	/usr/openwin/lib/libICE.so.6
0xf2f80000 	/net/jano/export/disk06/java2d/tdv/MantisEA.ws/build/solaris-sparc/lib/sparc/libfontmanager.so
0xfb8a0000 	/usr/openwin/lib/locale/common/xlibi18n.so.2
0xfb880000 	/usr/openwin/lib/locale/iso8859-1/xomEuro.so.2
0xfb860000 	/usr/openwin/lib/locale/common/ximlocal.so.2
0xfb810000 	/net/jano/export/disk06/java2d/tdv/MantisEA.ws/build/solaris-sparc/lib/sparc/libcmm.so

Local Time = Sat Nov 16 16:26:50 2002

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.4.1_03 mantis-beta FIXED IN: 1.4.1_03 mantis-beta INTEGRATED IN: 1.4.1_03 mantis-b10 mantis-beta
14-06-2004

WORK AROUND the workaround appears to be turning off our use shared memory extension. Prior to running your application, set and export the following environment variable: set NO_J2D_MITSHM=true export NO_J2D_MITSHM The disadvantage of this workaround is degradation in performance.
11-06-2004

PUBLIC COMMENTS Java2d multi-monitor problem
10-06-2004

EVALUATION I've been able to reproduce the problem on our Ultra1 Solaris 7 machine with ffb and Dome Md2SBX board (model 55-MD2SBX). The problem was that we're trying to reuse a shared memory image created for one visual for operations with image for a visual with a different depth. Like, we'd create a 10x10 shared memory image for 8-bit visual, and then try to use it for storing a 10x10 image but for 24-bit image, because we think that since it's 10x10, it'd fit. This bug has also attributed to some of the failures of PolyVerTest (namely, the 'garbaged images' ones). The fix in the 'suggested fix' session cured helped both cases. ###@###.### 2002-11-18
18-11-2002

SUGGESTED FIX http://javaweb.sfbay/~tdv/bugs/dome_crash/fix1 ###@###.### 2002-11-18
18-11-2002