OpenSuse sun.font.FileFontStrike.getCachedGlyphPtr 中的 ArrayOutOfBoundsException
ArrayOutOfBoundsException in sun.font.FileFontStrike.getCachedGlyphPtr on OpenSuse
刚刚在 OpenSUSE Leap42.2j 上命中了这个异常。 Linux 4.4.49-16-默认使用 Java 1.8.0_73 25.73-b02 之前从未见过
看起来类似于此错误 http://bugs.java.com/view_bug.do?bug_id=7183251,但据说已在 2012 年修复。
错误修复了吗?
有什么办法可以避免吗?
java.lang.ArrayIndexOutOfBoundsException: -34602892
at sun.font.FileFontStrike.getCachedGlyphPtr(FileFontStrike.java:472)
at sun.font.FileFontStrike.getSlot0GlyphImagePtrs(FileFontStrike.java:438)
at sun.font.CompositeStrike.getGlyphImagePtrs(CompositeStrike.java:115)
at sun.font.GlyphList.mapChars(GlyphList.java:272)
at sun.font.GlyphList.setFromChars(GlyphList.java:262)
at sun.java2d.pipe.GlyphListPipe.drawChars(GlyphListPipe.java:103)
at sun.java2d.pipe.ValidatePipe.drawChars(ValidatePipe.java:178)
at sun.java2d.SunGraphics2D.drawChars(SunGraphics2D.java:3036)
at sun.swing.SwingUtilities2.drawChars(SwingUtilities2.java:847)
at javax.swing.text.Utilities.drawTabbedText(Utilities.java:187)
at javax.swing.text.GlyphPainter1.paint(GlyphPainter1.java:119)
at javax.swing.text.GlyphView.paintTextUsingColor(GlyphView.java:491)
at javax.swing.text.GlyphView.paint(GlyphView.java:482)
at javax.swing.text.BoxView.paintChild(BoxView.java:161)
at javax.swing.text.BoxView.paint(BoxView.java:433)
at javax.swing.text.BoxView.paintChild(BoxView.java:161)
at javax.swing.text.BoxView.paint(BoxView.java:433)
at javax.swing.text.ParagraphView.paint(ParagraphView.java:580)
at javax.swing.text.html.ParagraphView.paint(ParagraphView.java:233)
at javax.swing.text.BoxView.paintChild(BoxView.java:161)
at javax.swing.text.BoxView.paint(BoxView.java:433)
at javax.swing.text.html.BlockView.paint(BlockView.java:282)
at javax.swing.text.BoxView.paintChild(BoxView.java:161)
at javax.swing.text.BoxView.paint(BoxView.java:433)
at javax.swing.text.html.BlockView.paint(BlockView.java:282)
at javax.swing.plaf.basic.BasicHTML$Renderer.paint(BasicHTML.java:481)
at javax.swing.plaf.synth.SynthToolTipUI.paint(SynthToolTipUI.java:187)
at javax.swing.plaf.synth.SynthToolTipUI.update(SynthToolTipUI.java:141)
at javax.swing.JComponent.paintComponent(JComponent.java:780)
at javax.swing.JComponent.paint(JComponent.java:1056)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:290)
at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
at javax.swing.RepaintManager.run(RepaintManager.java:831)
at javax.swing.RepaintManager.run(RepaintManager.java:814)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
at javax.swing.RepaintManager.access00(RepaintManager.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access0(EventQueue.java:97)
at java.awt.EventQueue.run(EventQueue.java:709)
at java.awt.EventQueue.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
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.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport.run(WaitDispatchSupport.java:184)
at java.awt.WaitDispatchSupport.run(WaitDispatchSupport.java:229)
at java.awt.WaitDispatchSupport.run(WaitDispatchSupport.java:227)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
at java.awt.Dialog.show(Dialog.java:1084)
at java.awt.Component.show(Component.java:1673)
at java.awt.Component.setVisible(Component.java:1625)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1005)
JOSM 的错误报告中讨论了类似的异常:Ticket #9729。
用户“stoecker”提供了非常相关的信息:
The crashs happen when texlive-arphic-fonts
is installed, but not
arphic-gbsn00lp-fonts
or arphic-bsmi00lp-fonts
. Either one of the
normal arphic fonts must be installed or the texlive variant must not
be installed.
作为确认,这 2 个其他类似问题已通过删除 texlive-arphic-fonts
包得到解决:
openSUSE 也有关于此问题的公开错误报告:Bug 916052
刚刚在 OpenSUSE Leap42.2j 上命中了这个异常。 Linux 4.4.49-16-默认使用 Java 1.8.0_73 25.73-b02 之前从未见过
看起来类似于此错误 http://bugs.java.com/view_bug.do?bug_id=7183251,但据说已在 2012 年修复。
错误修复了吗? 有什么办法可以避免吗?
java.lang.ArrayIndexOutOfBoundsException: -34602892
at sun.font.FileFontStrike.getCachedGlyphPtr(FileFontStrike.java:472)
at sun.font.FileFontStrike.getSlot0GlyphImagePtrs(FileFontStrike.java:438)
at sun.font.CompositeStrike.getGlyphImagePtrs(CompositeStrike.java:115)
at sun.font.GlyphList.mapChars(GlyphList.java:272)
at sun.font.GlyphList.setFromChars(GlyphList.java:262)
at sun.java2d.pipe.GlyphListPipe.drawChars(GlyphListPipe.java:103)
at sun.java2d.pipe.ValidatePipe.drawChars(ValidatePipe.java:178)
at sun.java2d.SunGraphics2D.drawChars(SunGraphics2D.java:3036)
at sun.swing.SwingUtilities2.drawChars(SwingUtilities2.java:847)
at javax.swing.text.Utilities.drawTabbedText(Utilities.java:187)
at javax.swing.text.GlyphPainter1.paint(GlyphPainter1.java:119)
at javax.swing.text.GlyphView.paintTextUsingColor(GlyphView.java:491)
at javax.swing.text.GlyphView.paint(GlyphView.java:482)
at javax.swing.text.BoxView.paintChild(BoxView.java:161)
at javax.swing.text.BoxView.paint(BoxView.java:433)
at javax.swing.text.BoxView.paintChild(BoxView.java:161)
at javax.swing.text.BoxView.paint(BoxView.java:433)
at javax.swing.text.ParagraphView.paint(ParagraphView.java:580)
at javax.swing.text.html.ParagraphView.paint(ParagraphView.java:233)
at javax.swing.text.BoxView.paintChild(BoxView.java:161)
at javax.swing.text.BoxView.paint(BoxView.java:433)
at javax.swing.text.html.BlockView.paint(BlockView.java:282)
at javax.swing.text.BoxView.paintChild(BoxView.java:161)
at javax.swing.text.BoxView.paint(BoxView.java:433)
at javax.swing.text.html.BlockView.paint(BlockView.java:282)
at javax.swing.plaf.basic.BasicHTML$Renderer.paint(BasicHTML.java:481)
at javax.swing.plaf.synth.SynthToolTipUI.paint(SynthToolTipUI.java:187)
at javax.swing.plaf.synth.SynthToolTipUI.update(SynthToolTipUI.java:141)
at javax.swing.JComponent.paintComponent(JComponent.java:780)
at javax.swing.JComponent.paint(JComponent.java:1056)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
at javax.swing.JComponent.paintChildren(JComponent.java:889)
at javax.swing.JComponent.paint(JComponent.java:1065)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:290)
at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
at javax.swing.RepaintManager.run(RepaintManager.java:831)
at javax.swing.RepaintManager.run(RepaintManager.java:814)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
at javax.swing.RepaintManager.access00(RepaintManager.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access0(EventQueue.java:97)
at java.awt.EventQueue.run(EventQueue.java:709)
at java.awt.EventQueue.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
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.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport.run(WaitDispatchSupport.java:184)
at java.awt.WaitDispatchSupport.run(WaitDispatchSupport.java:229)
at java.awt.WaitDispatchSupport.run(WaitDispatchSupport.java:227)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
at java.awt.Dialog.show(Dialog.java:1084)
at java.awt.Component.show(Component.java:1673)
at java.awt.Component.setVisible(Component.java:1625)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1005)
JOSM 的错误报告中讨论了类似的异常:Ticket #9729。
用户“stoecker”提供了非常相关的信息:
The crashs happen when
texlive-arphic-fonts
is installed, but notarphic-gbsn00lp-fonts
orarphic-bsmi00lp-fonts
. Either one of the normal arphic fonts must be installed or the texlive variant must not be installed.
作为确认,这 2 个其他类似问题已通过删除 texlive-arphic-fonts
包得到解决:
openSUSE 也有关于此问题的公开错误报告:Bug 916052