Ask Your Question
1

Fedora 23 away screen hangs because Java Swing app crashes

asked 2016-04-28 05:10:29 -0500

Geoffrey De Smet gravatar image

This is a regression from Fedora 22.

How to reproduce:

  • Open a Java swing app that has an uncaught exception handler and shows a dialog when that happens.
  • Wait until the away screen (or screen saver) shows up and then wait another hour. Then push space to get rid the away screen. It hangs.

What happens:

  • Once the away screen shows up, the Java Swing app starts crashing with this exception (OpenJDK 8).

    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData at sun.java2d.xr.XRPMBlitLoops.cacheToTmpSurface(XRPMBlitLoops.java:145) at sun.java2d.xr.XrSwToPMTransformedBlit.Transform(XRPMBlitLoops.java:400) at sun.java2d.xr.XRDrawImage.renderImageXform(XRDrawImage.java:63) at sun.java2d.pipe.DrawImage.transformImage(DrawImage.java:264) at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:76) at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:1014) at sun.java2d.pipe.ValidatePipe.copyImage(ValidatePipe.java:186) at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3318) at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3296) at javax.swing.plaf.nimbus.AbstractRegionPainter.paintWithFixedSizeCaching(AbstractRegionPainter.java:664) at javax.swing.plaf.nimbus.AbstractRegionPainter.paint(AbstractRegionPainter.java:157) at javax.swing.plaf.nimbus.AbstractRegionPainter.paint(AbstractRegionPainter.java:43) at javax.swing.plaf.nimbus.SynthPainterImpl.paint(SynthPainterImpl.java:61) at javax.swing.plaf.nimbus.SynthPainterImpl.paintForeground(SynthPainterImpl.java:110) at javax.swing.plaf.nimbus.SynthPainterImpl.paintArrowButtonForeground(SynthPainterImpl.java:290) at javax.swing.plaf.synth.SynthArrowButton$SynthArrowButtonUI.paint(SynthArrowButton.java:75) at javax.swing.plaf.synth.SynthButtonUI.update(SynthButtonUI.java:255) at javax.swing.JComponent.paintComponent(JComponent.java:780) at javax.swing.JComponent.paint(JComponent.java:1056) at javax.swing.plaf.synth.SynthSplitPaneDivider.paint(SynthSplitPaneDivider.java:91) at javax.swing.JComponent.paintChildren(JComponent.java:903) at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1047) 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.paintToOffscreen(JComponent.java:5217) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579) at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502) at javax.swing.RepaintManager.paint(RepaintManager.java:1272) at javax.swing.JComponent.paint(JComponent.java:1042) at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39) at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:79) at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:116) at java.awt.Container.paint(Container.java:1975) at java.awt.Window.paint(Window.java:3912) at javax.swing.RepaintManager$4.run(RepaintManager.java:842) at javax.swing.RepaintManager$4.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.access$1200(RepaintManager.java:64) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732) at java.awt.event.InvocationEvent.dispatch(InvocationEvent ...

(more)
edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2016-04-28 12:05:36 -0500

genodeftest gravatar image
  1. Are you using Wayland? If yes, don't expect it to work there.

  2. Please file a bug against the java-1.8.0-openjdk package. Can you reproduce this with a very simple Java Swing application? If yes, please add example code to the bug report.

  3. As a workaround you might want to switch to a tty using Ctrl+Alt+Fn with n=3…8 and login and run killall java or use Ctrl+Alt+Del to "just kill your UI". If both don't work, please enable sysrq keys (see Wikipedia and Linux kernel docs for details).

edit flag offensive delete link more

Comments

Seems like it's a known, highly duplicated bug, but it's not fixed yet.

Geoffrey De Smet gravatar imageGeoffrey De Smet ( 2016-05-10 06:09:55 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2016-04-28 05:10:29 -0500

Seen: 123 times

Last updated: Apr 28 '16