-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
6u10
-
x86
-
windows_7
FULL PRODUCT VERSION :
java version "1.6.0_18"
java(TM) SE Runtime Environment (build 1.6.0_18-b07)
java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7600]
A DESCRIPTION OF THE PROBLEM :
Using java.awt.font.LineBreakMeasurer.nextLayout in a multithreaded environment seems to cause a hang in java.util.HashMap.get.
The stacktraces of two hanging threads using 100% CPU time is attached.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
"GlyphLayout Thread 5" prio=6 tid=0x000000004b584000 nid=0x1230 runnable [0x000000004c09e000..0x000000004c09f890]
java.lang.Thread.State: RUNNABLE
at java.util.HashMap.get(Unknown Source)
at sun.font.SunLayoutEngine.getEngine(Unknown Source)
at sun.font.GlyphLayout$EngineRecord.init(Unknown Source)
at sun.font.GlyphLayout.nextEngineRecord(Unknown Source)
at sun.font.GlyphLayout.layout(Unknown Source)
at sun.font.ExtendedTextSourceLabel.createGV(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getGV(Unknown Source)
at sun.font.ExtendedTextSourceLabel.createCharinfo(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getCharinfo(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getLineBreakIndex(Unknown Source)
at java.awt.font.TextMeasurer.calcLineBreak(Unknown Source)
at java.awt.font.TextMeasurer.getLineBreakIndex(Unknown Source)
at java.awt.font.LineBreakMeasurer.nextOffset(Unknown Source)
at java.awt.font.LineBreakMeasurer.nextLayout(Unknown Source)
at java.awt.font.LineBreakMeasurer.nextLayout(Unknown Source)
at Test.run(Test.java:88)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"GlyphLayout Thread 3" prio=6 tid=0x000000004aed2c00 nid=0xa30 runnable [0x000000004be9e000..0x000000004be9f910]
java.lang.Thread.State: RUNNABLE
at java.util.HashMap.get(Unknown Source)
at sun.font.SunLayoutEngine.getEngine(Unknown Source)
at sun.font.GlyphLayout$EngineRecord.init(Unknown Source)
at sun.font.GlyphLayout.nextEngineRecord(Unknown Source)
at sun.font.GlyphLayout.layout(Unknown Source)
at sun.font.ExtendedTextSourceLabel.createGV(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getGV(Unknown Source)
at sun.font.ExtendedTextSourceLabel.createCharinfo(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getCharinfo(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getLineBreakIndex(Unknown Source)
at java.awt.font.TextMeasurer.calcLineBreak(Unknown Source)
at java.awt.font.TextMeasurer.getLineBreakIndex(Unknown Source)
at java.awt.font.LineBreakMeasurer.nextOffset(Unknown Source)
at java.awt.font.LineBreakMeasurer.nextLayout(Unknown Source)
at java.awt.font.LineBreakMeasurer.nextLayout(Unknown Source)
at Test.run(Test.java:88)
at java.lang.Thread.run(Unknown Source)
REPRODUCIBILITY :
This bug can be reproduced occasionally.
---------- BEGIN SOURCE ----------
Reproducible test case source code has been submitted as comments to issue #6611637:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6611637
---------- END SOURCE ----------
java version "1.6.0_18"
java(TM) SE Runtime Environment (build 1.6.0_18-b07)
java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7600]
A DESCRIPTION OF THE PROBLEM :
Using java.awt.font.LineBreakMeasurer.nextLayout in a multithreaded environment seems to cause a hang in java.util.HashMap.get.
The stacktraces of two hanging threads using 100% CPU time is attached.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
"GlyphLayout Thread 5" prio=6 tid=0x000000004b584000 nid=0x1230 runnable [0x000000004c09e000..0x000000004c09f890]
java.lang.Thread.State: RUNNABLE
at java.util.HashMap.get(Unknown Source)
at sun.font.SunLayoutEngine.getEngine(Unknown Source)
at sun.font.GlyphLayout$EngineRecord.init(Unknown Source)
at sun.font.GlyphLayout.nextEngineRecord(Unknown Source)
at sun.font.GlyphLayout.layout(Unknown Source)
at sun.font.ExtendedTextSourceLabel.createGV(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getGV(Unknown Source)
at sun.font.ExtendedTextSourceLabel.createCharinfo(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getCharinfo(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getLineBreakIndex(Unknown Source)
at java.awt.font.TextMeasurer.calcLineBreak(Unknown Source)
at java.awt.font.TextMeasurer.getLineBreakIndex(Unknown Source)
at java.awt.font.LineBreakMeasurer.nextOffset(Unknown Source)
at java.awt.font.LineBreakMeasurer.nextLayout(Unknown Source)
at java.awt.font.LineBreakMeasurer.nextLayout(Unknown Source)
at Test.run(Test.java:88)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
"GlyphLayout Thread 3" prio=6 tid=0x000000004aed2c00 nid=0xa30 runnable [0x000000004be9e000..0x000000004be9f910]
java.lang.Thread.State: RUNNABLE
at java.util.HashMap.get(Unknown Source)
at sun.font.SunLayoutEngine.getEngine(Unknown Source)
at sun.font.GlyphLayout$EngineRecord.init(Unknown Source)
at sun.font.GlyphLayout.nextEngineRecord(Unknown Source)
at sun.font.GlyphLayout.layout(Unknown Source)
at sun.font.ExtendedTextSourceLabel.createGV(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getGV(Unknown Source)
at sun.font.ExtendedTextSourceLabel.createCharinfo(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getCharinfo(Unknown Source)
at sun.font.ExtendedTextSourceLabel.getLineBreakIndex(Unknown Source)
at java.awt.font.TextMeasurer.calcLineBreak(Unknown Source)
at java.awt.font.TextMeasurer.getLineBreakIndex(Unknown Source)
at java.awt.font.LineBreakMeasurer.nextOffset(Unknown Source)
at java.awt.font.LineBreakMeasurer.nextLayout(Unknown Source)
at java.awt.font.LineBreakMeasurer.nextLayout(Unknown Source)
at Test.run(Test.java:88)
at java.lang.Thread.run(Unknown Source)
REPRODUCIBILITY :
This bug can be reproduced occasionally.
---------- BEGIN SOURCE ----------
Reproducible test case source code has been submitted as comments to issue #6611637:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6611637
---------- END SOURCE ----------
- duplicates
-
JDK-7027300 Unsynchronized HashMap access causes endless loop
-
- Closed
-