Duplicate :
|
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 ----------