Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8186111

IAE: "Length must be >= 0" at GlyphPainter2.getBoundedPosition

    Details

      Description

      FULL PRODUCT VERSION :
      1.8.0_131-b11, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
      1.8.0_141-b15, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM

      ADDITIONAL OS VERSION INFORMATION :
      Windows 10 Home Single Language 1607 (14393)
      Mac OS X 10.12.5 (16F73)

      A DESCRIPTION OF THE PROBLEM :
      This is an upstream bug report for:
      https://josm.openstreetmap.de/ticket/14968
      https://josm.openstreetmap.de/ticket/15130

      As per Quality Outreach please add josm-label to this bug report.
      Two distinct users reported us an IllegalArgumentException that occurs deep within javax.swing.text.GlyphPainter2 code.

      JOSM has an help browser that displays HTML code in a JEditorPane inside a new JFrame.

      The bug seems to not be platform-specific has it occurs at least on Windows and macOS.

      See the attached stacktrace. Sadly we couldn't find a way to reproduce the problem. The bug has first been spotted with 8u131 and has been reproduced in 8u141.

      ACTUAL -
      IllegalArgumentException

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      java.lang.IllegalArgumentException: Length must be >= 0.
      at javax.swing.text.GlyphPainter2.getBoundedPosition(GlyphPainter2.java:205)
      at javax.swing.text.GlyphView.getBreakWeight(GlyphView.java:722)
      at javax.swing.text.html.InlineView.getBreakWeight(InlineView.java:150)
      at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:725)
      at javax.swing.text.html.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:157)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.html.ParagraphView.getMinimumSpan(ParagraphView.java:270)
      at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
      at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
      at javax.swing.text.html.TableView$CellView.calculateMinorAxisRequirements(TableView.java:1786)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.html.BlockView.getMinimumSpan(BlockView.java:378)
      at javax.swing.text.html.TableView.checkSingleColumnCell(TableView.java:461)
      at javax.swing.text.html.TableView.calculateColumnRequirements(TableView.java:424)
      at javax.swing.text.html.TableView.calculateMinorAxisRequirements(TableView.java:546)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
      at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.html.BlockView.getMinimumSpan(BlockView.java:378)
      at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
      at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
      at javax.swing.text.html.TableView$CellView.calculateMinorAxisRequirements(TableView.java:1786)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.html.BlockView.getMinimumSpan(BlockView.java:378)
      at javax.swing.text.html.TableView.checkSingleColumnCell(TableView.java:461)
      at javax.swing.text.html.TableView.calculateColumnRequirements(TableView.java:424)
      at javax.swing.text.html.TableView.calculateMinorAxisRequirements(TableView.java:546)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
      at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.html.BlockView.getMinimumSpan(BlockView.java:378)
      at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
      at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
      at javax.swing.text.html.TableView$CellView.calculateMinorAxisRequirements(TableView.java:1786)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.html.BlockView.getMinimumSpan(BlockView.java:378)
      at javax.swing.text.html.TableView.checkSingleColumnCell(TableView.java:461)
      at javax.swing.text.html.TableView.calculateColumnRequirements(TableView.java:424)
      at javax.swing.text.html.TableView.calculateMinorAxisRequirements(TableView.java:546)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
      at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.html.BlockView.getMinimumSpan(BlockView.java:378)
      at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
      at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.html.BlockView.getMinimumSpan(BlockView.java:378)
      at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
      at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.html.BlockView.getMinimumSpan(BlockView.java:378)
      at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
      at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
      at javax.swing.text.html.BlockView.getMinimumSpan(BlockView.java:378)
      at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
      at javax.swing.text.html.BlockView.calculateMinorAxisRequirements(BlockView.java:146)
      at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
      at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
      at javax.swing.text.BoxView.layout(BoxView.java:708)
      at javax.swing.text.BoxView.setSize(BoxView.java:397)
      at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1722)
      at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1046)
      at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1308)
      at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1287)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
      at java.awt.EventQueue.access$500(EventQueue.java:97)
      at java.awt.EventQueue$3.run(EventQueue.java:709)
      at java.awt.EventQueue$3.run(EventQueue.java:703)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

      REPRODUCIBILITY :
      This bug can be reproduced rarely.

        Attachments

          Activity

            People

            • Assignee:
              psadhukhan Prasanta Sadhukhan
              Reporter:
              webbuggrp Webbug Group
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: