読者です 読者をやめる 読者になる 読者になる

プログラムdeタマゴ

nodamushiの著作物は、文章、画像、プログラムにかかわらず全てUnlicenseです

JavaFXのWebViewがマウスイベントでJVMごとクラッシュする

JavaFX JAVA

 いろんな訳あってブレークポイントをつけれるエディタを内蔵したいのだ。でも、JavaFXには良いテキストエディタがない。(だいたい、いつになったら全角文字がなんか変な色がつくの直るんだ?)
 
 Threadをまたぐのは正直面倒くさいけど、背に腹は代えられない。SwingNodeでつっこんでやるから、Swingでもいいや、と思ったのだが意外にもSwingも全然ねぇ。


 なら、JavaScriptでもいいよ!ということで、検索してみたら見つけました素晴らしいエディタ。その名もAce

 ブレークポイントあり、Emacsキーバインドあり(超高評価)の素晴らしいエディタです。これだ!これを突っ込もう。


 というわけで、突っ込んでみました。

f:id:nodamushi:20150714231705p:plain

import java.nio.file.Path;
import java.nio.file.Paths;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;


public class AceEditor extends Application{
  public static void main(final String[] args){
    launch(args);
  }


  @Override
  public void start(final Stage s) throws Exception{
    final WebView v = new WebView();
    final Path p = Paths.get("ace","editor.html");
    s.setScene(new Scene(v));
    v.getEngine().load(p.toUri().toURL().toString());
    s.show();
  }

}

 一見問題なさそうに見えます。が、コピー&ペーストができません。
 そして、何よりも問題なのは、マウスクリックしていると、突然不意に落ちること。

f:id:nodamushi:20150714231938p:plain


 残されたログを見ても、やっぱりマウスイベントで落ちているようです。
f:id:nodamushi:20150714232108p:plain


 JRE8u45でも試してみましたが、結果は同じでした。


 むろん、これをFirefoxやChromeで動かしても特に問題は起こりません。
 コピペが出来ないだけだったら、JavaScriptを駆使して何とかなるかなとか思ってたんですが、JVMごとクラッシュするとなると流石にどうもならない。





 これがAceだけに限る問題なのか、WebViewそのものの問題なのか、ちょっと判断がつきませんが、WebViewもまだまだ不安定なんだなと思い知らされました。
 バグレポート?めんどくせ



 一応検索用にエラーコード貼り付け。

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000000000000, pid=7052, tid=6804
#
# JRE version: Java(TM) SE Runtime Environment (8.0_40-b25) (build 1.8.0_40-b25)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.40-b25 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  0x0000000000000000
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#