External monitor throws Java exception
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nick Knight
el 20 de Dic. de 2017
Comentada: Onur
el 19 de Dic. de 2022
When I connect/disconnect my external monitor, a Java exception appears on MATLAB's command line:
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:148) at sun.java2d.xr.XrSwToPMBlit.Blit(XRPMBlitLoops.java:356) at sun.java2d.pipe.DrawImage.blitSurfaceData(DrawImage.java:959) at sun.java2d.pipe.DrawImage.renderImageCopy(DrawImage.java:577) at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:67) 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.ImageIcon.paintIcon(ImageIcon.java:425) at com.mathworks.toolstrip.plaf.GalleryButtonUI.paintContent(GalleryButtonUI.java:115) at com.mathworks.toolstrip.plaf.RegularButtonUI.paintContent(RegularButtonUI.java:64) at com.mathworks.toolstrip.plaf.ToolstripButtonUI.paint(ToolstripButtonUI.java:197) at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161) at javax.swing.JComponent.paintComponent(JComponent.java:780) at com.mathworks.mwswing.MJButton.paintComponent(MJButton.java:430) at javax.swing.JComponent.paint(JComponent.java:1056) at com.mathworks.mwswing.MJButton.paint(MJButton.java:408) 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.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$4.run(RepaintManager.java:831) at javax.swing.RepaintManager$4.run(RepaintManager.java:814) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) 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.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)
I'm using MATLAB R2017b (fresh install) on Xubuntu 17.10. I'm invoking MATLAB via the command
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/MATLAB/R2017b/bin/matlab -desktop
Since this doesn't crash the MATLAB GUI, I don't consider it a critical issue, but it is annoying (and easily reproduced).
Edit: Arguably this does 'crash' the MATLAB GUI: subsequent keyboard input retriggers the same exception. My workaround, which I forgot to mention, is mouse-clicking the Clear Workspace button. I won't pretend to understand how this resolves the issue.
10 comentarios
Jo Williams
el 13 de Feb. de 2020
...Same here. I'm operating through NX, and it seems to be when the NX window is resized that matlab triggers all this.
MATLAB Version: 9.5.0.944444 (R2018b)
Operating System: Linux 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64
Java Version: Java 1.8.0_152-b16 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
Onur
el 19 de Dic. de 2022
This started happening to me after I switched between json files and matlab scripts and never before that.
Perhaps there is something in json which triggers this bug in R2017b. I also noticed a little box on the bottom left titled "(JSON File)" with the label "No details available" in it.
Respuesta aceptada
Andrew King
el 17 de Abr. de 2018
Seems like I've fixed my problem by disabling xrender by putting the line
-Dsun.java2d.xrender=false
in a new file called /usr/local/MATLAB/R2018a/bin/glnxa64/java.opts
Unintended consequences TBD.
Java options ref: https://www.mathworks.com/help/matlab/matlab_env/java-opts-file.html?s_tid=srchtitle
Similar bug: https://www.mathworks.com/matlabcentral/answers/381324-why-do-i-get-java-exception-on-display-change
3 comentarios
Guillaume R
el 13 de Nov. de 2018
I tried that solution on Ubuntu 18.04 and with Matlab R2018b. I don't know if it solved it, but it made the graphics performance so low and laggy that it was unusable, so I removed it. Would be nice to have an official fix provided by Mathworks.
Más respuestas (1)
Robert
el 13 de Nov. de 2018
I had the same issue with R2018a on Xubuntu 16.04 and 18.04 operated remotely via X2Go. Thanks for the solution, works fine! This answer should definitely be placed more prominently, e.g. in the FAQ. Took me a while to find it..
1 comentario
Ver también
Categorías
Más información sobre Environment and Settings en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!