IBM Support

IV26985: JAVA.AWT.FONT.LINEBREAKMEASURER, TEXTMEASURER METHOD CALLS LEADS TO AN ENDLESS LOOP IN A MULTITHREADED APPLICATION

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: java.lang.NullPointerException in
    sun.font.GlyphLayout$EngineRecord.init result the hung.
    .
    Stack Trace:
    java/util/HashMap.findNonNullKeyEntry(HashMap.java:526(Compiled
    Code))
                java/util/HashMap.getEntry(HashMap.java(Compiled
    Code))
                java/util/HashMap.get(HashMap.java(Compiled Code))
    
    sun/font/SunLayoutEngine.getEngine(SunLayoutEngine.java:115(Comp
    iled Code))
    
    sun/font/GlyphLayout$EngineRecord.init(GlyphLayout.java:642(Comp
    iled Code))
    
    sun/font/GlyphLayout.nextEngineRecord(GlyphLayout.java:494(Compi
    led Code))
    
    sun/font/GlyphLayout.layout(GlyphLayout.java:417(Compiled Code))
    
    sun/font/ExtendedTextSourceLabel.createGV(ExtendedTextSourceLabe
    l.java:308(Compiled Code))
    
    sun/font/ExtendedTextSourceLabel.getGV(ExtendedTextSourceLabel.j
    ava:294(Compiled Code))
    
    sun/font/ExtendedTextSourceLabel.createCharinfo(ExtendedTextSour
    ceLabel.java:566(Compiled Code))
    
    sun/font/ExtendedTextSourceLabel.getCharinfo(ExtendedTextSourceL
    abel.java:492(Compiled Code))
    
    sun/font/ExtendedTextSourceLabel.getLineBreakIndex(ExtendedTextS
    ourceLabel.java:439(Compiled Code))
    
    java/awt/font/TextMeasurer.calcLineBreak(TextMeasurer.java:320(C
    ompiled Code))
    
    java/awt/font/TextMeasurer.getLineBreakIndex(TextMeasurer.java:5
    56)
    
    java/awt/font/LineBreakMeasurer.nextOffset(LineBreakMeasurer.jav
    a:352)
    
    java/awt/font/LineBreakMeasurer.nextLayout(LineBreakMeasurer.jav
    a:434)
    
    java/awt/font/LineBreakMeasurer.nextLayout(LineBreakMeasurer.jav
    a:407)
       ..
       ..
    .
    NA
    

Local fix

  • NA
    

Problem summary

  • java.awt.font.LineBreakMeasurer, TextMeasurer method calls leads
    to an endless loop in a multithreaded application. JDK internal
    implementation class (SunLayoutEngine) is not thread safe and
    also uses normal HashMap leading to an infinite loop and thus
    resulting hung.
    

Problem conclusion

  • This defect will be fixed in:
    6.0.0 SR12
    6.0.1 SR4
    7.0.0 SR3
    .
    JVM has been updated to use concurrent HashMap to prevent the
    infinite loop in multithread enviornment.
    

Temporary fix

  • NA
    

Comments

APAR Information

  • APAR number

    IV26985

  • Reported component name

    JAVA CLASS LIBS

  • Reported component ID

    620700130

  • Reported release

    600

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-08-24

  • Closed date

    2012-08-30

  • Last modified date

    2012-08-31

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    JAVA CLASS LIBS

  • Fixed component ID

    620700130

Applicable component levels

  • R600 PSY

       UP

  • R700 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVQ3Y","label":"Java Class Libraries"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
31 August 2012