High CPU due to SunLayoutEngine.getEngine HashMap loops
Issue
- We see high CPU in calls like the following:
"http-localhost/127.0.0.1:8080-152" daemon prio=3 tid=0x0000000106217400 nid=0x52647 runnable [0xfffffffde20f8000..0xfffffffde20ff5c0]
java.lang.Thread.State: RUNNABLE
at java.util.HashMap.get(HashMap.java:305)
at sun.font.SunLayoutEngine.getEngine(SunLayoutEngine.java:115)
at sun.font.GlyphLayout$EngineRecord.init(GlyphLayout.java:642)
at sun.font.GlyphLayout.nextEngineRecord(GlyphLayout.java:494)
at sun.font.GlyphLayout.layout(GlyphLayout.java:426)
at sun.font.ExtendedTextSourceLabel.createGV(ExtendedTextSourceLabel.java:308)
at sun.font.ExtendedTextSourceLabel.getGV(ExtendedTextSourceLabel.java:294)
at sun.font.ExtendedTextSourceLabel.createCharinfo(ExtendedTextSourceLabel.java:563)
at sun.font.ExtendedTextSourceLabel.getCharinfo(ExtendedTextSourceLabel.java:492)
at sun.font.ExtendedTextSourceLabel.getLineBreakIndex(ExtendedTextSourceLabel.java:438)
at java.awt.font.TextMeasurer.calcLineBreak(TextMeasurer.java:308)
at java.awt.font.TextMeasurer.getLineBreakIndex(TextMeasurer.java:544)
at java.awt.font.LineBreakMeasurer.nextOffset(LineBreakMeasurer.java:340)
at java.awt.font.LineBreakMeasurer.nextLayout(LineBreakMeasurer.java:422)
at java.awt.font.LineBreakMeasurer.nextLayout(LineBreakMeasurer.java:395)
Environment
- Java
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.