Disabling xrender would be difficult to do since I think it would mean modifying the script that launches Matlab.
Just out of curiosity, what is the difference between launching Matlab directly through X2go, and launching it on a linux desktop in X2go? It works fine launching it directly. -----Original Message----- From: Ulrich Sibiller <ul...@gmx.de> Sent: Tuesday, October 23, 2018 5:46 AM To: Thackeray, Neil L <ne...@illinois.edu> Cc: x2go users <x2go-user@lists.x2go.org> Subject: Re: [X2Go-User] Matlab in X2go https://stackoverflow.com/questions/34188495/how-can-i-work-around-the-classcastexception-in-java2d-bug-id-7172749 describes that problem and offers a workaround (JVM option -Dsun.java2d.xrender=false) Unfortunately that workaround is bad for the x2go environment and will probably slow down your desktop. Normally we recommend to do the opposite and ENABLE xrender rendering because then the functions that NX can accellerate are used. Uli On Tue, Oct 23, 2018 at 12:57 AM Thackeray, Neil L <ne...@illinois.edu> wrote: > > I’m having some issues using Matlab2018a in X2go. When using xfce4 (and KDE) > desktop it causes some exception when the X2go window is hidden or resized. > It also will hide all of the button widgets in Matlab until I mouse over them. > > > > When I change the session type to ‘Single Application: Terminal’, and then > typing ‘matlab &’ in the terminal it works perfectly fine. > > > > This is the exception that Matlab throws, usually many times: > > > > 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(GalleryButto > nUI.java:115) > > at > com.mathworks.toolstrip.plaf.RegularButtonUI.paintContent(RegularButto > nUI.java:65) > > at > com.mathworks.toolstrip.plaf.ToolstripButtonUI.paint(ToolstripButtonUI > .java:198) > > 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:432) > > at javax.swing.JComponent.paint(JComponent.java:1056) > > at > com.mathworks.mwswing.MJButton.paint(MJButton.java:410) > > 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.paintChildren(JComponent.java:889) > > at javax.swing.JComponent.paint(JComponent.java:1065) > > at > javax.swing.JComponent.paintToOffscreen(JComponent.java:5210) > > at > javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintMan > ager.java:1579) > > at > javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502 > ) > > at > javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManage > r.java:306) > > 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.doIntersectionPr > ivilege(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:73 > 8) > > 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.doIntersectionPr > ivilege(ProtectionDomain.java:80) > > at > java.awt.EventQueue.dispatchEvent(EventQueue.java:726) > > at > java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThrea > d.java:201) > > at > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.j > ava:116) > > at > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThrea > d.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) > > _______________________________________________ > x2go-user mailing list > x2go-user@lists.x2go.org > https://lists.x2go.org/listinfo/x2go-user _______________________________________________ x2go-user mailing list x2go-user@lists.x2go.org https://lists.x2go.org/listinfo/x2go-user