-
Bug
-
Resolution: Fixed
-
P3
-
1.0
-
1.0beta2
-
sparc
-
solaris_2.4
-
Not verified
When starting HotJava it repeatedly hangs in X11Fontmetrics.init().
There is no blocking code in that piece of code. Sending the process
an IO signal does not help. The only thing that helps is moving
the mouse in the HotJava window. This seems to kick start it again.
This is very puzzeling.
I just noticed that it doesn't happen when the splash screen is shown
first. Try setting "hotjava.splash=false" in your ~/.hotjava/properties.
Full thread dump:
"Screen Updater" (TID:0xed9a5d40, sys_thread_t:0xecf81de8) prio=4
java.lang.Object.wait(Object.java)
sun.awt.ScreenUpdater.nextEntry(ScreenUpdater.java:75)
sun.awt.ScreenUpdater.run(ScreenUpdater.java:95)
"Image Fetcher 3" (TID:0xed9a32e0, sys_thread_t:0xecfb1de8) prio=3
sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:148)
sun.awt.image.InputStreamImageSource.setPixels(InputStreamImageSource.java:380)
sun.awt.image.GifImageDecoder.sendPixels(GifImageDecoder.java:243)
sun.awt.image.GifImageDecoder.readImage(GifImageDecoder.java:295)
sun.awt.image.GifImageDecoder.produceImage(GifImageDecoder.java:155)
sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:193)
sun.awt.image.ImageFetcher.run(ImageFetcher.java:98)
"Image Fetcher 2" (TID:0xed9a3288, sys_thread_t:0xecfe1de8) prio=3
sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:148)
sun.awt.image.InputStreamImageSource.setPixels(InputStreamImageSource.java:380)
sun.awt.image.GifImageDecoder.sendPixels(GifImageDecoder.java:243)
sun.awt.image.GifImageDecoder.readImage(GifImageDecoder.java:295)
sun.awt.image.GifImageDecoder.produceImage(GifImageDecoder.java:155)
sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:193)
sun.awt.image.ImageFetcher.run(ImageFetcher.java:98)
"Image Fetcher 1" (TID:0xed9a3228, sys_thread_t:0xed011de8) prio=3
sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:148)
sun.awt.image.InputStreamImageSource.setPixels(InputStreamImageSource.java:380)
sun.awt.image.GifImageDecoder.sendPixels(GifImageDecoder.java:243)
sun.awt.image.GifImageDecoder.readImage(GifImageDecoder.java:295)
sun.awt.image.GifImageDecoder.produceImage(GifImageDecoder.java:155)
sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:193)
sun.awt.image.ImageFetcher.run(ImageFetcher.java:98)
"Image Fetcher 0" (TID:0xed9a31c0, sys_thread_t:0xed041de8) prio=3
sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:148)
sun.awt.image.InputStreamImageSource.setPixels(InputStreamImageSource.java:380)
sun.awt.image.GifImageDecoder.sendPixels(GifImageDecoder.java:243)
sun.awt.image.GifImageDecoder.readImage(GifImageDecoder.java:295)
sun.awt.image.GifImageDecoder.produceImage(GifImageDecoder.java:155)
sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:193)
sun.awt.image.ImageFetcher.run(ImageFetcher.java:98)
"AWT-Motif" (TID:0xed9a22e8, sys_thread_t:0xed071de8) prio=5
java.lang.Thread.run(Thread.java)
"AWT-Input" (TID:0xed9a22c8, sys_thread_t:0xed241de8) prio=5
"Finalizer thread" (TID:0xed9982f8, sys_thread_t:0xef4f1de8) prio=1
"Idle thread" (TID:0xed998288, sys_thread_t:0xef521de8) prio=0 *current thread*
"clock handler" (TID:0xed9980d0, sys_thread_t:0xef551de8) prio=11
"main" (TID:0xed9980a0, sys_thread_t:0x71f08) prio=5
sun.awt.motif.X11FontMetrics.<init>(X11FontMetrics.java:104)
sun.awt.motif.X11FontMetrics.getFontMetrics(X11FontMetrics.java:185)
sun.awt.motif.MComponentPeer.getFontMetrics(MComponentPeer.java:193)
sun.awt.motif.MLabelPeer.minimumSize(MLabelPeer.java:46)
sun.awt.motif.MComponentPeer.preferredSize(MComponentPeer.java:146)
java.awt.Component.preferredSize(Component.java:491)
sun.hotjava.ui.UserLabel.preferredSize(UserLabel.java:70)
java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:159)
java.awt.Container.preferredSize(Container.java:263)
java.awt.BorderLayout.layoutContainer(BorderLayout.java:202)
java.awt.Container.layout(Container.java:238)
java.awt.Component.validate(Component.java:522)
java.awt.Container.validate(Container.java:248)
sun.hotjava.ui.EditorFrame.initFrame(EditorFrame.java:173)
sun.hotjava.Main.main(Main.java:141)
Monitor Cache Dump:
sun.awt.image.ImageRepresentation@ED9A6E98/EDAA8848 (key=0xed9a6e98): monitor owner: "Image Fetcher 1"
sun.hotjava.ui.InfoWindow@ED9A2C48/EDA95CC8 (key=0xed9a2c48): monitor owner: "main"
sun.awt.image.ImageRepresentation@ED9A7538/EDAAFB18 (key=0xed9a7538): monitor owner: "Image Fetcher 0"
sun.hotjava.ui.EditorFrame@ED9A26E8/EDA94988 (key=0xed9a26e8): monitor owner: "main"
sun.awt.image.ImageRepresentation@ED9A70C8/EDAAAE80 (key=0xed9a70c8): monitor owner: "Image Fetcher 2"
sun.awt.ScreenUpdater@ED9A5D40/EDAA2F90 (key=0xed9a5d40): unowned
Waiting to be notified:
"Screen Updater"
sun.awt.motif.MToolkit@ED9A22B0/EDA93B90 (key=0xed9a22b0): monitor owner: "AWT-Motif"
Waiting to enter:
"main"
"AWT-Input"
"Image Fetcher 1"
"Image Fetcher 2"
"Image Fetcher 3"
"Image Fetcher 0"
java.lang.Class@ED9A7DF0/148D98 (key=0xed9a7df0): monitor owner: "main"
sun.awt.image.ImageRepresentation@ED9A72F8/EDAAD4B8 (key=0xed9a72f8): monitor owner: "Image Fetcher 3"
Registered Monitor Dump:
Finalize me queue lock: unowned
Waiting to be notified:
"Finalizer thread"
Thread queue lock: unowned
Class lock: unowned
Java stack lock: unowned
Code rewrite lock: unowned
Heap lock: unowned
Has finalization queue lock: unowned
Monitor IO lock: unowned
Child death monitor: unowned
Event monitor: unowned
I/O monitor: unowned
Waiting to be notified:
"AWT-Motif"
Alarm monitor: unowned
Waiting to be notified:
"clock handler"
Sbrk lock: unowned
Monitor cache lock: unowned
Monitor registry: monitor owner: "Idle thread"
Thread Alarm Q:
There is no blocking code in that piece of code. Sending the process
an IO signal does not help. The only thing that helps is moving
the mouse in the HotJava window. This seems to kick start it again.
This is very puzzeling.
I just noticed that it doesn't happen when the splash screen is shown
first. Try setting "hotjava.splash=false" in your ~/.hotjava/properties.
Full thread dump:
"Screen Updater" (TID:0xed9a5d40, sys_thread_t:0xecf81de8) prio=4
java.lang.Object.wait(Object.java)
sun.awt.ScreenUpdater.nextEntry(ScreenUpdater.java:75)
sun.awt.ScreenUpdater.run(ScreenUpdater.java:95)
"Image Fetcher 3" (TID:0xed9a32e0, sys_thread_t:0xecfb1de8) prio=3
sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:148)
sun.awt.image.InputStreamImageSource.setPixels(InputStreamImageSource.java:380)
sun.awt.image.GifImageDecoder.sendPixels(GifImageDecoder.java:243)
sun.awt.image.GifImageDecoder.readImage(GifImageDecoder.java:295)
sun.awt.image.GifImageDecoder.produceImage(GifImageDecoder.java:155)
sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:193)
sun.awt.image.ImageFetcher.run(ImageFetcher.java:98)
"Image Fetcher 2" (TID:0xed9a3288, sys_thread_t:0xecfe1de8) prio=3
sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:148)
sun.awt.image.InputStreamImageSource.setPixels(InputStreamImageSource.java:380)
sun.awt.image.GifImageDecoder.sendPixels(GifImageDecoder.java:243)
sun.awt.image.GifImageDecoder.readImage(GifImageDecoder.java:295)
sun.awt.image.GifImageDecoder.produceImage(GifImageDecoder.java:155)
sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:193)
sun.awt.image.ImageFetcher.run(ImageFetcher.java:98)
"Image Fetcher 1" (TID:0xed9a3228, sys_thread_t:0xed011de8) prio=3
sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:148)
sun.awt.image.InputStreamImageSource.setPixels(InputStreamImageSource.java:380)
sun.awt.image.GifImageDecoder.sendPixels(GifImageDecoder.java:243)
sun.awt.image.GifImageDecoder.readImage(GifImageDecoder.java:295)
sun.awt.image.GifImageDecoder.produceImage(GifImageDecoder.java:155)
sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:193)
sun.awt.image.ImageFetcher.run(ImageFetcher.java:98)
"Image Fetcher 0" (TID:0xed9a31c0, sys_thread_t:0xed041de8) prio=3
sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:148)
sun.awt.image.InputStreamImageSource.setPixels(InputStreamImageSource.java:380)
sun.awt.image.GifImageDecoder.sendPixels(GifImageDecoder.java:243)
sun.awt.image.GifImageDecoder.readImage(GifImageDecoder.java:295)
sun.awt.image.GifImageDecoder.produceImage(GifImageDecoder.java:155)
sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:193)
sun.awt.image.ImageFetcher.run(ImageFetcher.java:98)
"AWT-Motif" (TID:0xed9a22e8, sys_thread_t:0xed071de8) prio=5
java.lang.Thread.run(Thread.java)
"AWT-Input" (TID:0xed9a22c8, sys_thread_t:0xed241de8) prio=5
"Finalizer thread" (TID:0xed9982f8, sys_thread_t:0xef4f1de8) prio=1
"Idle thread" (TID:0xed998288, sys_thread_t:0xef521de8) prio=0 *current thread*
"clock handler" (TID:0xed9980d0, sys_thread_t:0xef551de8) prio=11
"main" (TID:0xed9980a0, sys_thread_t:0x71f08) prio=5
sun.awt.motif.X11FontMetrics.<init>(X11FontMetrics.java:104)
sun.awt.motif.X11FontMetrics.getFontMetrics(X11FontMetrics.java:185)
sun.awt.motif.MComponentPeer.getFontMetrics(MComponentPeer.java:193)
sun.awt.motif.MLabelPeer.minimumSize(MLabelPeer.java:46)
sun.awt.motif.MComponentPeer.preferredSize(MComponentPeer.java:146)
java.awt.Component.preferredSize(Component.java:491)
sun.hotjava.ui.UserLabel.preferredSize(UserLabel.java:70)
java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:159)
java.awt.Container.preferredSize(Container.java:263)
java.awt.BorderLayout.layoutContainer(BorderLayout.java:202)
java.awt.Container.layout(Container.java:238)
java.awt.Component.validate(Component.java:522)
java.awt.Container.validate(Container.java:248)
sun.hotjava.ui.EditorFrame.initFrame(EditorFrame.java:173)
sun.hotjava.Main.main(Main.java:141)
Monitor Cache Dump:
sun.awt.image.ImageRepresentation@ED9A6E98/EDAA8848 (key=0xed9a6e98): monitor owner: "Image Fetcher 1"
sun.hotjava.ui.InfoWindow@ED9A2C48/EDA95CC8 (key=0xed9a2c48): monitor owner: "main"
sun.awt.image.ImageRepresentation@ED9A7538/EDAAFB18 (key=0xed9a7538): monitor owner: "Image Fetcher 0"
sun.hotjava.ui.EditorFrame@ED9A26E8/EDA94988 (key=0xed9a26e8): monitor owner: "main"
sun.awt.image.ImageRepresentation@ED9A70C8/EDAAAE80 (key=0xed9a70c8): monitor owner: "Image Fetcher 2"
sun.awt.ScreenUpdater@ED9A5D40/EDAA2F90 (key=0xed9a5d40): unowned
Waiting to be notified:
"Screen Updater"
sun.awt.motif.MToolkit@ED9A22B0/EDA93B90 (key=0xed9a22b0): monitor owner: "AWT-Motif"
Waiting to enter:
"main"
"AWT-Input"
"Image Fetcher 1"
"Image Fetcher 2"
"Image Fetcher 3"
"Image Fetcher 0"
java.lang.Class@ED9A7DF0/148D98 (key=0xed9a7df0): monitor owner: "main"
sun.awt.image.ImageRepresentation@ED9A72F8/EDAAD4B8 (key=0xed9a72f8): monitor owner: "Image Fetcher 3"
Registered Monitor Dump:
Finalize me queue lock: unowned
Waiting to be notified:
"Finalizer thread"
Thread queue lock: unowned
Class lock: unowned
Java stack lock: unowned
Code rewrite lock: unowned
Heap lock: unowned
Has finalization queue lock: unowned
Monitor IO lock: unowned
Child death monitor: unowned
Event monitor: unowned
I/O monitor: unowned
Waiting to be notified:
"AWT-Motif"
Alarm monitor: unowned
Waiting to be notified:
"clock handler"
Sbrk lock: unowned
Monitor cache lock: unowned
Monitor registry: monitor owner: "Idle thread"
Thread Alarm Q: