|
Quick Lists
|
|
Bug ID:
|
6417055
|
|
Votes
|
1
|
|
Synopsis
|
JCK15a: DefaultHSBFileChooserPanel hangs on creating HSB image
|
|
Category
|
java:classes_swing
|
|
Reported Against
|
|
|
Release Fixed
|
|
|
State
|
11-Closed, duplicate of 6552812,
bug
|
|
Priority:
|
3-Medium
|
|
Related Bugs
|
6463748
,
6552812
|
|
Submit Date
|
24-APR-2006
|
|
Description
|
Filed By : JCK team (jck- xxxxx@xxxxx )
JCK : JCK1.5a
J2SE : 1.5 (build 1.5.0_04-b05, mixed mode, sharing)
Platform[s] : Linux
JCK test owners: http://javaweb.sfbay/jcce/tcks/jck/docs/others/owners.jto
switch/Mode : FAILED with -Xshare:on on x86 machine with Hyper-Threading support
PASSED with -Xshare:on on x86 machine WITHOUT Hyper-Threading support
Failing Tests :
==================
api/javax_swing/JColorChooser/index.html#getsetTests
JCK test source location:
==========================
/java/re/jck/1.5a/latest/binaries/JCK-runtime-15a/tests
Problem description:
=====================
The following JCK1.5a tests:
api/javax_swing/JColorChooser/index.html#getsetTests
hangs when running in a loop.
The problem can be reproduced with running it in a loop. Below is the exact command line:
while `true` ; \
do $JDK_HOME/bin/java -Xverify:all -Xshare:on \
-cp $JCK_HOME/JCK-runtime-15a/classes -Djava.security.policy=$JCK_HOME/JCK-runtime-15a/lib/jck.policy \
javasoft.sqe.tests.api.javax.swing.JColorChooser.getsetTests -TestCaseID ALL; \
done
It is known that the loop eventually hangs on Linux machine with Hyper-Threading processors
when java is run with -Xshare:on option. The loop does not hang on Linux machines without
Hyper-Threading processors.
Additional info:
=================
uname -a:
Linux 2.6.13-15-smp #1 SMP Tue Sep 13 14:56:15 UTC 2005 i686 i686 i386 GNU/Linux)
Test output:
=============
Full thread dump Java HotSpot(TM) Client VM (1.5.0_04-b05 mixed mode, sharing):
"SyntheticImageGenerator" daemon prio=1 tid=0x45c143c8 nid=0x369 in Object.wait() [0x46555000..0x465551c0]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at javax.swing.colorchooser.DefaultHSBChooserPanel$HSBImage.computeRow(DefaultHSBChooserPanel.java:703)
- locked <0x659b1060> (a javax.swing.colorchooser.DefaultHSBChooserPanel$HSBImage)
at javax.swing.colorchooser.SyntheticImageGenerator.run(SyntheticImage.java:124)
"AWT-XAWT" daemon prio=1 tid=0x0835b328 nid=0x349 runnable [0x463d2000..0x463d21c0]
at sun.awt.X11.XToolkit.waitForEvents(Native Method)
at sun.awt.X11.XToolkit.run(XToolkit.java:463)
at sun.awt.X11.XToolkit.run(XToolkit.java:438)
at java.lang.Thread.run(Thread.java:595)
"Java2D Disposer" daemon prio=1 tid=0x082da490 nid=0x348 in Object.wait() [0x4633f000..0x4633fe40]
at java.lang.Object.wait(Native Method)
- waiting on <0x65e4bc00> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x65e4bc00> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at sun.java2d.Disposer.run(Disposer.java:107)
at java.lang.Thread.run(Thread.java:595)
"Low Memory Detector" daemon prio=1 tid=0x45c00ab0 nid=0x346 runnable [0x00000000..0x00000000]
"CompilerThread0" daemon prio=1 tid=0x080a13d0 nid=0x345 waiting on condition [0x00000000..0x45d7f9a8]
"Signal Dispatcher" daemon prio=1 tid=0x080a0408 nid=0x344 runnable [0x00000000..0x00000000]
"Finalizer" daemon prio=1 tid=0x0809a0c0 nid=0x343 in Object.wait() [0x45b2b000..0x45b2c0c0]
at java.lang.Object.wait(Native Method)
- waiting on <0x65e245d8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x65e245d8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=1 tid=0x08098240 nid=0x342 in Object.wait() [0x45aab000..0x45aab140]
at java.lang.Object.wait(Native Method)
- waiting on <0x65e24378> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:474)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x65e24378> (a java.lang.ref.Reference$Lock)
"main" prio=1 tid=0x0805bba8 nid=0x340 in Object.wait() [0xbfc91000..0xbfc91f18]
at java.lang.Object.wait(Native Method)
- waiting on <0x65e60660> (a java.awt.MediaTracker)
at java.awt.MediaTracker.waitForID(MediaTracker.java:651)
- locked <0x65e60660> (a java.awt.MediaTracker)
at javax.swing.ImageIcon.loadImage(ImageIcon.java:234)
- locked <0x65e60660> (a java.awt.MediaTracker)
at javax.swing.ImageIcon.<init>(ImageIcon.java:165)
at javax.swing.colorchooser.DefaultHSBChooserPanel.initializePalettesIfNecessary(DefaultHSBChooserPanel.java:463)
at javax.swing.colorchooser.DefaultHSBChooserPanel.buildSliderPalettePanel(DefaultHSBChooserPanel.java:433)
at javax.swing.colorchooser.DefaultHSBChooserPanel.buildChooser(DefaultHSBChooserPanel.java:257)
at javax.swing.colorchooser.AbstractColorChooserPanel.installChooserPanel(AbstractColorChooserPanel.java:141)
at javax.swing.colorchooser.DefaultHSBChooserPanel.installChooserPanel(DefaultHSBChooserPanel.java:226)
at javax.swing.plaf.basic.BasicColorChooserUI$Handler.propertyChange(BasicColorChooserUI.java:279)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:333)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:270)
at java.awt.Component.firePropertyChange(Component.java:7159)
at javax.swing.JColorChooser.setChooserPanels(JColorChooser.java:454)
at javax.swing.JColorChooser.addChooserPanel(JColorChooser.java:394)
at javasoft.sqe.tests.api.javax.swing.JColorChooser.getsetTests.JColorChooser0011(getsetTests.java:289)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at javasoft.sqe.javatest.lib.MultiTest.invokeTestCase(MultiTest.java:399)
at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:195)
at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:127)
at javasoft.sqe.tests.api.javax.swing.JColorChooser.getsetTests.main(getsetTests.java:34)
"VM Thread" prio=1 tid=0x08095748 nid=0x341 runnable
"VM Periodic Task Thread" prio=1 tid=0x45c02008 nid=0x347 waiting on condition
=============
Posted Date : 2006-04-24 15:04:48.0
|
|
Work Around
|
N/A
|
|
Evaluation
|
Talked to xxxxx@xxxxx . Since all we really have here is a hanging MediaTracker, makes sense to have 2D look at this first.
Posted Date : 2006-04-24 16:53:34.0
According to thread dump from the bug description, the SynteticImageGenerator
thread waits on isDirty flag when first row of HSBImage is calculated
(DefaultHSBChooserPanel.java, lines 720 - 722).
However, if method addConsumer() (DefaultHSBChooserPanel.java,
lines 646 - 649) is called after the start of image production
(i.e, atert the start of the SynteticImageGenerator thread),
the wait() on line 721 never get notification about isDirty changes.
In this case, the image is not produced and MediaTracker never gets
first image frame.
It looks like this scenario happened when JCK test was ran on smp linux
system with -Xshare:on flag.
To solve this problem, we can call notifyAll() after isDirty
flag changes like it is done in the nextFrame() method of the
HSBImage class.
Posted Date : 2006-05-05 13:08:50.0
The problem is in the SyntheticImage class that is used to draw the color diagram.
This class was rewritten in the fix for the 6552812 bug.
Posted Date : 2008-07-18 16:17:05.0
|
|
Comments
|
Submitted On 24-AUG-2009
steven_reynolds
I just hit this bug. Here is the thread dump:
2009-08-24 10:27:45
Full thread dump Java HotSpot(TM) Server VM (14.0-b16 mixed mode):
"SyntheticImageGenerator" daemon prio=10 tid=0x6dafe000 nid=0x2736 in
Object.wait() [0x6dffe000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xb2ccec60> (a
javax.swing.colorchooser.DefaultHSBChooserPanel$HSBImage)
at java.lang.Object.wait(Object.java:485)
at javax.swing.colorchooser.DefaultHSBChooserPanel$HSBImage.computeRow(DefaultHSBChooserPanel.java:721)
- locked <0xb2ccec60> (a
javax.swing.colorchooser.DefaultHSBChooserPanel$HSBImage)
at javax.swing.colorchooser.SyntheticImageGenerator.run(SyntheticImage.java:124)
"AWT-EventQueue-1" prio=10 tid=0x0845f000 nid=0x26eb in Object.wait()
[0x6e1a6000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x7574fdb0> (a java.awt.MediaTracker)
at java.awt.MediaTracker.waitForID(MediaTracker.java:651)
- locked <0x7574fdb0> (a java.awt.MediaTracker)
at javax.swing.ImageIcon.loadImage(ImageIcon.java:264)
- locked <0x7574fdb0> (a java.awt.MediaTracker)
at javax.swing.ImageIcon.<init>(ImageIcon.java:194)
at javax.swing.colorchooser.DefaultHSBChooserPanel.initializePalettesIfNecessary(DefaultHSBChooserPanel.java:481)
at javax.swing.colorchooser.DefaultHSBChooserPanel.buildSliderPalettePanel(DefaultHSBChooserPanel.java:451)
at javax.swing.colorchooser.DefaultHSBChooserPanel.buildChooser(DefaultHSBChooserPanel.java:258)
at javax.swing.colorchooser.AbstractColorChooserPanel.installChooserPanel(AbstractColorChooserPanel.java:141)
at javax.swing.colorchooser.DefaultHSBChooserPanel.installChooserPanel(DefaultHSBChooserPanel.java:226)
at javax.swing.plaf.basic.BasicColorChooserUI$Handler.propertyChange(BasicColorChooserUI.java:285)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
at java.awt.Component.firePropertyChange(Component.java:8128)
at javax.swing.JColorChooser.setChooserPanels(JColorChooser.java:459)
at javax.swing.JColorChooser.removeChooserPanel(JColorChooser.java:439)
at com.interactive.util.gui.coloreditor.ColoredButtonPanel$ButtonListener.actionPerformed(ColoredButtonPanel.java:645)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at com.interactive.util.gui.coloreditor.ColoredButtonPanel$MyButtonComponent.processMouseEvent(ColoredButtonPanel.java:749)
Submitted On 03-SEP-2009
UncleSAM
It is fixed in JDK 7
Submitted On 30-NOV-2009
jamone
Why was this bug marked as a duplicate of a feature request ?
This bug still shows up in 1.6.0_16
Submitted On 30-NOV-2009
jamone
I have hit this bug using 1.6.0_16 on Linux, it does not happen all the time, but just happened to me again.
java.lang.Object.wait(Object.java)
java.lang.Object.wait(Object.java:485)
javax.swing.colorchooser.DefaultHSBChooserPanel$HSBImage.computeRow(DefaultHSBChooserPanel.java:721)
javax.swing.colorchooser.SyntheticImageGenerator.run(SyntheticImage.java:124)
which was initiated from:
java.lang.Object.wait(Object.java)
java.awt.MediaTracker.waitForID(MediaTracker.java:651)
javax.swing.ImageIcon.loadImage(ImageIcon.java:264)
javax.swing.ImageIcon.<init>(ImageIcon.java:194)
javax.swing.colorchooser.DefaultHSBChooserPanel.initializePalettesIfNecessary(DefaultHSBChooserPanel.java:481)
javax.swing.colorchooser.DefaultHSBChooserPanel.buildSliderPalettePanel(DefaultHSBChooserPanel.java:451)
javax.swing.colorchooser.DefaultHSBChooserPanel.buildChooser(DefaultHSBChooserPanel.java:258)
javax.swing.colorchooser.AbstractColorChooserPanel.installChooserPanel(AbstractColorChooserPanel.java:141)
javax.swing.colorchooser.DefaultHSBChooserPanel.installChooserPanel(DefaultHSBChooserPanel.java:226)
javax.swing.plaf.basic.BasicColorChooserUI$Handler.propertyChange(BasicColorChooserUI.java:285)
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
java.awt.Component.firePropertyChange(Component.java:8128)
javax.swing.JColorChooser.setChooserPanels(JColorChooser.java:459)
javax.swing.plaf.basic.BasicColorChooserUI.installUI(BasicColorChooserUI.java:91)
javax.swing.JComponent.setUI(JComponent.java:673)
javax.swing.JColorChooser.setUI(JColorChooser.java:222)
javax.swing.JColorChooser.updateUI(JColorChooser.java:233)
javax.swing.JColorChooser.<init>(JColorChooser.java:196)
javax.swing.JColorChooser.<init>(JColorChooser.java:184)
javax.swing.JColorChooser.showDialog(JColorChooser.java:122)
....
java.awt.Window.dispatchEventImpl(Window.java:2475)
java.awt.Component.dispatchEvent(Component.java:4460)
java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Submitted On 01-DEC-2009
UncleSAM
It is fixed in JDK 7.
It is marked as a duplicate because it is fixed during the ColorChooser refactoring.
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |