日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了如何解決java2D中的ClassCastException(錯誤ID 7172749)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我很倒霉,因為我在java8中遇到了一個錯誤,
對于其他任何人來說,這似乎都不是什么大問題,因此Oracle不會在java9之前修復它。
錯誤具有Bug-ID 7172749(還請注意相關和重復的錯誤)
在某個Linux機器上,它總是經常發生

我在帶有jdk1.8.0_u66的Ubuntu 14.04.3 LTS上遇到了這個問題。
但是,在另一個安裝了Ubuntu12.04.3LTS和相同的JDK版本的機器上,我根本無法重現這個問題。

讓我迷惑不解的是,這似乎并沒有給其他任何人帶來驚喜,所以我猜我可能犯了一個特別嚴重的錯誤。
我運行的是Oracle-JDK(與OpenJDK相反),因為我們的客戶使用相同的版本(盡管是在Windows上),并且我們的想法是接近他們的環境。

所以,我的問題是,如何繞過這個問題(例如,安裝X11庫XY,使用Magic-XXjava2dailsafe參數啟動我的java程序,或者類似的東西)
并加入到可以放心地等待甲骨文解決實際問題的人群中嗎?

致以最誠摯的問候
TOBI

順便說一下,我的堆棧如下所示:

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)
[...]

推薦答案

我想出了解決此問題的方法

簡而言之:使用參數-Dsun.java2d.xrender=false啟動JVM。

使用該選項,我不再看到問題。

背景信息

Bug JDK-7172749最近已使用jdk9內部版本124進行了修復,該錯誤修復已通過JDK-8158068回傳到jdk8更新112。您可以從以下位置下載jdk8u112構建預覽:JDK8 Early Access Releases。

但是,運行此生成沒有為我解決問題。

我的情況,我遇到了錯誤:我正在運行jEdit,在從掛起到RAM恢復Linux之后,我看到了這些ClassCastException。
這是相同的堆棧跟蹤:

10:04:10 [AWT-EventQueue-0] [error] AWT-EventQueue-0: java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData
10:04:10 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at sun.java2d.xr.XRPMBlitLoops.cacheToTmpSurface(XRPMBlitLoops.java:145)

此異常的影響是,jEdit或部分的整個窗口不會繪制并且保持白色。

查看patch for the backported bugfix,它實際上修復了不同類(即sun.java2d.xr.XRRenderer)中的ClassCastException。

所以,這沒有解決我的問題也就不足為奇了。

另一次Google搜索顯示bug JDK-6975408,這使我意識到系統屬性sun.java2d.xrender

更多搜索:

此選項在System Properties for Java 2D Technology

中介紹

報價:

xender

目標用途:為基于X11的現代臺式機啟用基于XRender的Java 2D呈現管道,提供更高的圖形性能。

介紹:Java SE 7

默認值:false

使用方法:管道默認禁用,但可以通過設置命令行屬性-Dsun.java2d.xrender=true啟用。較早的X11配置可能無法支持XRender。詳細形式-Dsun.java2d.xrender=True可用于將消息啟用到標準輸出,指示管道是否已實際啟用。

是的,這是Java7中添加的功能:Xrender pipeline now in JDK7 master

另請參閱Enhancements in Java SE 7

在Java8中,現在默認啟用:Java8: Xrender Java2D pipeline enabled by default

根據本博客的評論,XRender管道僅與Java2D、AWT和Swing相關-其他GUI框架(JavaFX、SWT等)不受影響:

基于Swing/AWT的應用程序應該會受益,swt/JavaFX/lwjgl/jogl使用其他與Java2D無關的代碼路徑。

我在發行說明中沒有發現什么,但是在源代碼中,很明顯,XRender管道在默認情況下是啟用的:sun/awt/X11GraphicsEnvironment.java
改變了這一點的已經在2011年完成了,根據第一個jdk8版本的說法,它一直都是啟用的。([3-11]>在2011年已經完成了,根據ticket的說法,它總是在第一個jdk8版本中啟用。
我想,我之前沒有經歷過這個錯誤的原因是,我可能將java7作為運行時使用了相當長的時間,并且Eclipse沒有受到影響。

/li>

再次仔細查看重復的錯誤報告,已經有一個與堆棧跟蹤匹配:

bug JDK-8133723:sun.awt.image.BufImgSurfaceData不能強制轉換為sun.java2d.xr.XRSurfaceData-它確實不是重復的.
但是,復制此錯誤可能很困難。它僅在掛起到RAM周期之后出現。

更新1-觸發器

該錯誤是通過使用xrandr更改輸出顯示觸發的,例如

xrandr --output eDP1 --auto --output DVI-1-0 --off

將立即導致ClassCastException。當我在掛起之前關閉顯示器時,我以為是掛起-恢復導致了這種情況,但這是錯誤的。

更新2-新建Java錯誤票證

現在有一個新的Java錯誤票證:JDK-8160328

更新3-已使用jdk-9-ea-b131修復

錯誤票證JDK-8160328已作為JDK-8147542的副本關閉-此錯誤票證已使用latest EA build for java 9(內部版本131及更高版本)修復。

我可以確認,使用xrandr切換顯示器時不再出現ClassCastException。

這篇關于如何解決java2D中的ClassCastException(錯誤ID 7172749)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:ClassCastException ID java2D 如何解決 錯誤
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定