torutkのブログ

ソフトウェア・エンジニアのブログ

Windows 7、Java SE 8u20、NetBeans 8の組み合わせで落ちる

【お知らせ】(2014-10-15)本バグはJava SE 8u25で修正されました。
http://www.oracle.com/technetwork/java/javase/8u25-relnotes-2296185.html


Windows 7 64bit版にJava SE 8u20 64bit版の上でNetBeans 8を動かしてJavaプログラムを記述していると、高頻度でNetBeansが消失、プロセスが異常終了してしまいます。

数回の操作でいずれも日本語入力中(Microsoft IME)で落ちてしまいました。

JavaVM異常終了時のhs_err_pid18024.log(数値部分は都度異なります)が生成されたのでJavaVMの異常終了です。

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000005c00dbe7, pid=18024, tid=22092
#
# JRE version: Java(TM) SE Runtime Environment (8.0_20-b26) (build 1.8.0_20-b26)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.20-b23 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# V  [jvm.dll+0x5dbe7]
:(中略)
Current thread (0x000000001822f000):  JavaThread "Active Reference Queue Daemon" daemon [_thread_in_vm, id=22092, stack(0x00000000189e0000,0x0000000018be0000)]
:(中略)
Stack: [0x00000000189e0000,0x0000000018be0000],  sp=0x0000000018bdf158,  free space=2044k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0x5dbe7]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J 377  java.io.WinNTFileSystem.list(Ljava/io/File;)[Ljava/lang/String; (0 bytes) @ 0x0000000002645d0f [0x0000000002645cc0+0x4f]
J 27244 C2 java.io.File.listFiles()[Ljava/io/File; (52 bytes) @ 0x0000000004b23cf0 [0x0000000004b23b40+0x1b0]
:(以下略)

NetBeansを実行するJavaを、Java SE 8u11にすることでとりあえず回避しています。開発プログラムはJava SE 8u20の指定可なので大きな問題にはならないですが面倒ですね。

2014-09-04T00:40+09:00追記

NetBeansのバグデータベースにこの件登録してみました。
https://netbeans.org/bugzilla/show_bug.cgi?id=246854

2014-09-13T19:50+09:00追記

Java SE 8u20のバグ「VM will crash, if MS-IME is enabled and you enter twice JTextArea. 」
https://bugs.openjdk.java.net/browse/JDK-8055877

これが原因のようです。これは致命的なバグですね。
Windows日本語版でAWT/Swingを使ったGUIアプリケーションを動かしている環境では、決してJava SE 8u20にはアップデートしないでください。」
というメッセージを発せざるを得ません。しかし、8u20はスキップしてもいいのですが、10月にリリースされるセキュリティアップデート8u25はスキップを推奨できないのでここで修正が入らないと厳しい状況です。