-
Bug
-
Resolution: Incomplete
-
P4
-
8u131, 9
-
generic
-
generic
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.
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.