UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 70086

2017.3 Vivado - Vivado gives an Internal Exception when running 2017.3 over Xterm

Description

When running Vivado 2017.3 over Xterm or on a Linux virtual machine, Vivado is frequently failing with a Java internal exception.

The exceptions occur when changing resolution or when Vivado is attempting to display a pop-up dialog box. 

The exception produces a stack error similar to the following:

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:86)
            at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:1030)
            at sun.java2d.SunGraphics2D.copyImage(SunGraphics2D.java:3229)
            at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3393)
            at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3342)
            at de.javasoft.plaf.synthetica.painter.ImagePainter.drawImage(ImagePainter.java:764)
            at de.javasoft.plaf.synthetica.painter.ImagePainter.drawCenter(ImagePainter.java:548)
            at de.javasoft.plaf.synthetica.painter.CheckBoxPainter.paintCheckBoxBackground
            (CheckBoxPainter.java:170)
            at ui.utils.lnf.HSyntheticaCheckBoxPainter.paintCheckBoxBackground(SourceFile:34)
            at de.javasoft.plaf.synthetica.painter.SyntheticaPainter.paintCheckBoxBackground
            (SyntheticaPainter.java:210)
            at javax.swing.plaf.synth.SynthCheckBoxUI.paintBackground(SynthCheckBoxUI.java:65)
            at javax.swing.plaf.synth.SynthButtonUI.update(SynthButtonUI.java:254)
            at javax.swing.JComponent.paintComponent(JComponent.java:780)
            at javax.swing.JComponent.paint(JComponent.java:1056)
            at javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:151)
            at com.jidesoft.plaf.basic.BasicJideTableUIDelegate.paintCell(Unknown Source)
            at com.jidesoft.plaf.basic.BasicJideTableUIDelegate.a(Unknown Source)
            at com.jidesoft.plaf.basic.BasicJideTableUIDelegate.paint(Unknown Source)
            at com.jidesoft.plaf.basic.BasicCellSpanTableUIDelegate.paint(Unknown Source)
            at com.jidesoft.plaf.basic.BasicCellSpanTableUI.paint(Unknown Source)
            at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
            at javax.swing.JComponent.paintComponent(JComponent.java:780)
            at com.jidesoft.grid.CellStyleTable.paintComponent(Unknown Source)
            at ui.utils.h.j.s.paintComponent(SourceFile:776)
            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.JViewport.paint(JViewport.java:728)
            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 ui.b.c.b.p.paint(SourceFile:1080)
            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.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.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.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.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.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.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.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.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.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:306)
            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:3904)
            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: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 ui.frmwork.b.d.dispatchEvent(SourceFile:76)
            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)
 

Solution

This issue is due a pipeline xrender issue with JAVA 8 and is specific to the Xterm or virtual box usage.

The issue is reported as fixed with JAVA 9 and Vivado 2017.4.

To avoid the issue in Vivado 2017.3 you can disable the xrender by launching Vivado with the following -jvm option.

vivado -jvm "Dsun.java2d.xrender=false"

Alternately, if you use a VNC window instead of an Xterm window, you will avoid the JAVA exception.

AR# 70086
Date 11/20/2017
Status Active
Type General Article
Tools
  • Vivado Design Suite - 2017.3
Page Bookmarked