如何在java2d中解决ClassCastException(Bug-ID 7172749)
我很幸运地遭受了java8中的错误,这对其他人来说似乎不是一个大问题,所以Oracle不会在java9之前修复它。
该错误具有错误ID 7172749(还要注意相关和重复的错误),并且它只是在某个Linux机器上一直发生。
我在带有jdk1.8.0_u66的Ubuntu 14.04.3 LTS上遇到了这个问题。
但是,在另一个带有Ubuntu 12.04.3 LTS和相同JDK版本的盒子上,我根本无法重现问题。
令我困惑的是,这似乎对其他人来说都不是一个障碍,所以我想也许我犯了一个特别的转储错误。我正在运行Oracle-JDK(而不是OpenJDK),因为我们的客户使用相同的版本(尽管在Windows上),并且想法是靠近他们的环境。
所以,我的问题是,如何解决这个问题(例如,安装X11-library xy,用一个神奇的-XXjava2dfailsafe参数启动我的java程序,或者沿着这些路线)
加入那些可以舒适地等待预言机修复实际问题的人群?
最好的问候托比
顺便说一句,我的堆栈看起来像这样:
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.XrSwToPMBlit.Blit(XRPMBlitLoops.java:353)
at sun.java2d.SurfaceDataProxy.updateSurfaceData(SurfaceDataProxy.java:498)
at sun.java2d.SurfaceDataProxy.replaceData(SurfaceDataProxy.java:455)
at sun.java2d.SurfaceData.getSourceSurfaceData(SurfaceData.java:233)
at sun.java2d.pipe.DrawImage.renderImageCopy(DrawImage.java:566)
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:67)
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:1014)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3318)
at sun.awt.image.ImageRepresentation.drawToBufImage(ImageRepresentation.java:813)
at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:1021)
[...]