有时,主要是为了测试,我在运行远程 Java Swing 应用程序时使用 X11 转发。我使用 SSH 的C
(压缩)和Y
(转发)选项。
我的 _JAVA_OPTIONS 具有以下值:-Dsun.java2d.noddraw=true -Dsun.java2d.opengl=false
当我运行远程应用程序时,我得到以下信息:
SEVERE: java.lang.ArrayIndexOutOfBoundsException: -18350080 Thread: AWT-EventQu eue-0
:::::::::::::::::::::::::::::::::
sun.font.FileFontStrike.getCachedGlyphPtr(FileFontStrike.java:472)
sun.font.FileFontStrike.getSlot0GlyphImagePtrs(FileFontStrike.java:438)
sun.font.CompositeStrike.getGlyphImagePtrs(CompositeStrike.java:115)
sun.font.GlyphList.mapChars(GlyphList.java:272)
sun.font.GlyphList.setFromString(GlyphList.java:244)
sun.java2d.pipe.GlyphListPipe.drawString(GlyphListPipe.java:71)
sun.java2d.SunGraphics2D.drawString(SunGraphics2D.java:2867)
sun.swing.SwingUtilities2.drawString(SwingUtilities2.java:563)
sun.swing.SwingUtilities2.drawStringUnderlineCharAt(SwingUtilities2.java:584)
javax.swing.plaf.basic.BasicLabelUI.paintEnabledText(BasicLabelUI.java:119)
javax.swing.plaf.basic.BasicLabelUI.paint(BasicLabelUI.java:179)
javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
javax.swing.JComponent.paintComponent(JComponent.java:769)
javax.swing.JComponent.paint(JComponent.java:1045)
javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:151)
javax.swing.plaf.basic.BasicComboBoxUI.paintCurrentValue(BasicComboBoxUI.java:12 55)
javax.swing.plaf.metal.MetalComboBoxUI.paintCurrentValue(MetalComboBoxUI.java:90 )
javax.swing.plaf.basic.BasicComboBoxUI.paint(BasicComboBoxUI.java:903)
javax.swing.plaf.metal.MetalComboBoxUI.paint(MetalComboBoxUI.java:62)
javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
javax.swing.JComponent.paintComponent(JComponent.java:769)
javax.swing.JComponent.paint(JComponent.java:1045)
javax.swing.JComponent.paintChildren(JComponent.java:878)
javax.swing.JComponent.paint(JComponent.java:1054)
javax.swing.JComponent.paintChildren(JComponent.java:878)
javax.swing.JComponent.paint(JComponent.java:1054)
javax.swing.JComponent.paintChildren(JComponent.java:878)
bibliothek.gui.dock.util.BackgroundPanel.paintChildren(BackgroundPanel.java:147)
javax.swing.JComponent.paint(JComponent.java:1054)
bibliothek.gui.dock.util.BackgroundPanel.paint(BackgroundPanel.java:104)
javax.swing.JComponent.paintChildren(JComponent.java:878)
bibliothek.gui.dock.util.BackgroundPanel.paintChildren(BackgroundPanel.java:147)
javax.swing.JComponent.paint(JComponent.java:1054)
bibliothek.gui.dock.util.BackgroundPanel.paint(BackgroundPanel.java:104)
javax.swing.JComponent.paintChildren(JComponent.java:878)
javax.swing.JComponent.paint(JComponent.java:1054)
javax.swing.JComponent.paintChildren(JComponent.java:878)
bibliothek.gui.dock.util.BackgroundPanel.paintChildren(BackgroundPanel.java:147)
javax.swing.JComponent.paint(JComponent.java:1054)
bibliothek.gui.dock.util.BackgroundPanel.paint(BackgroundPanel.java:104)
javax.swing.JComponent.paintChildren(JComponent.java:878)
bibliothek.gui.dock.util.BackgroundPanel.paintChildren(BackgroundPanel.java:147)
javax.swing.JComponent.paint(JComponent.java:1054)
bibliothek.gui.dock.util.BackgroundPanel.paint(BackgroundPanel.java:104)
javax.swing.JComponent.paintChildren(JComponent.java:878)
bibliothek.gui.dock.util.BackgroundPanel.paintChildren(BackgroundPanel.java:147)
javax.swing.JComponent.paint(JComponent.java:1054)
bibliothek.gui.dock.util.BackgroundPanel.paint(BackgroundPanel.java:104)
javax.swing.JComponent.paintChildren(JComponent.java:878)
bibliothek.gui.dock.util.BackgroundPanel.paintChildren(BackgroundPanel.java:147)
javax.swing.JComponent.paint(JComponent.java:1054)
bibliothek.gui.dock.util.BackgroundPanel.paint(BackgroundPanel.java:104)
javax.swing.JComponent.paintChildren(JComponent.java:878)
javax.swing.JComponent.paint(JComponent.java:1054)
javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
javax.swing.JComponent.paintChildren(JComponent.java:878)
javax.swing.JComponent.paint(JComponent.java:1054)
javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295 )
javax.swing.RepaintManager.paint(RepaintManager.java:1249)
javax.swing.JComponent._paintImmediately(JComponent.java:5158)
javax.swing.JComponent.paintImmediately(JComponent.java:4969)
javax.swing.RepaintManager$3.run(RepaintManager.java:808)
javax.swing.RepaintManager$3.run(RepaintManager.java:796)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:7 6)
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796)
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769)
javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:718)
javax.swing.RepaintManager.access$1100(RepaintManager.java:62)
javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1677)
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
java.awt.EventQueue.access$200(EventQueue.java:103)
java.awt.EventQueue$3.run(EventQueue.java:694)
java.awt.EventQueue$3.run(EventQueue.java:692)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:7 6)
java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242 )
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
java.security.AccessController.doPrivileged(Native Method)
java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
java.awt.Dialog.show(Dialog.java:1082)
javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:870)
com.areen.jlib.util.ExceptionLogger.uncaughtException(ExceptionLogger.java:64)
java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1057)
java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1052)
java.awt.EventDispatchThread.processException(EventDispatchThread.java:264)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:256 )
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
java.security.AccessController.doPrivileged(Native Method)
java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
java.awt.Dialog.show(Dialog.java:1082)
javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:870)
com.areen.jlib.util.ExceptionLogger.uncaughtException(ExceptionLogger.java:64)
java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1057)
java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1052)
java.awt.EventDispatchThread.processException(EventDispatchThread.java:264)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:256 )
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150 )
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
java.awt.EventDispatchThread.run(EventDispatchThread.java:91)