2017-02-01 2 views
0

lein replをクラッシュ:AWT/SwingのプロジェクトにREPL

user=> (javax.swing.JFrame. "My Frame") 
SocketException Connection reset 
     java.net.SocketInputStream.read (SocketInputStream.java:209) 
     java.net.SocketInputStream.read (SocketInputStream.java:141) 
     java.io.BufferedInputStream.fill (BufferedInputStream.java:246) 
     java.io.BufferedInputStream.read (BufferedInputStream.java:265) 
     java.io.FilterInputStream.read (FilterInputStream.java:83) 
     java.io.PushbackInputStream.read (PushbackInputStream.java:139) 
     clojure.tools.nrepl.bencode/read-byte (bencode.clj:84) 
     clojure.tools.nrepl.bencode/read-byte (bencode.clj:-1) 
     clojure.tools.nrepl.bencode/read-token (bencode.clj:236) 
     clojure.tools.nrepl.bencode/read-token (bencode.clj:234) 
     clojure.tools.nrepl.bencode/read-bencode (bencode.clj:254) 
     clojure.tools.nrepl.bencode/read-bencode (bencode.clj:251) 
Bye for now! 

しかし、新鮮なプロジェクト/ lein replにプロジェクトせず、それは仕事をしません。

user=> (javax.swing.JFrame. "My Frame") 
#object[javax.swing.JFrame 0x2ee69c3e "javax.swing.JFrame[frame0,0,0,0x0,invalid,hidden,layout=java.awt.BorderLayout,title=My Frame,resizable,normal,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]"] 

私のJDKとJREは更新されましたが、それは役に立ちませんでした。

私は最初、シーソー(シーソーとClojureは私の唯一のプロジェクト依存でした)を使ってみることに気付きました。それも同様にクラッシュし、私はスイングを直接使用しようとしてもクラッシュが発生することに気づいた。依存関係からシーソーを削除すると、再び動作します。私のプロジェクトには他の依存関係があります(AWT/Swingとは関係なく、clojure 1.8.0、clj-http 2.3.0、data.json 0.2.6、camel-snake-kebab 0.4.0 、clj-time 0.13.0)、もう一度起こっています。私は最小限のケースを見つけることができるかどうかを調べるつもりです。
編集:Clojureと[clj-http "2.3.0"]、またはClojureとシーソーのみを持つ場合は最小限のケースです。

私もEDT(EventQueue.invokeLater)から実行していることを確認しようとしましたが、それは役に立たず、プログラムがクラッシュしました。

次にAWT (java.awt.Frame.)を試してみましたが、同じクラッシュがありました。最後

、FWIW、これは上で起こっている:
REPL-Y 0.3.7、nREPL 0.2.12
Clojureの1.8.0
は、Java HotSpot(TM)64ビットサーバーVM 1.8.0_121-B13
Windows 10 Pro x64

私は今もウベルジャを作ろうとしましたが、うまくいくようです。
lein replとCIDERのREPLだけがクラッシュするようです(したがって、nREPLを想定していますか?)。

これを診断して解決するにはどうすればよいですか?

+0

[私のjava.net.SocketExceptionを引き起こす原因:接続リセット?](http://stackoverflow.com/questions/585599/whats-causing-my-java-net-socketexception-connection-reset) –

+0

@HovercraftFullOfEels afaik leinは2つのJVMを作成します.1つはJVMを、もう1つはプログラムのためのものです。これはプログラムがクラッシュして接続が閉じられたときに発生します。私は共通点があるのは例外タイプなので、どちらの方法も無関係だと思います。 – MasterMastic

+0

私はあなたの質問を "dup-hammer"しなかったこのタイプの例外の専門家ではありませんが、ソケットが反対側から閉じられたときに例外が発生する可能性があります。 –

答えて

0

私はClojureの1.8.0最小限のプロジェクトに

(defproject km "0.1.0-SNAPSHOT" 
    :dependencies [ 
    [org.clojure/clojure "1.8.0"] 
    [clj-http "2.3.0"] 
    ] 
) 

それを再現することはできません は、Java HotSpot(TM)64ビットサーバーVM 1.8.0_112-B16 REPL-yの0.3.7、nREPL 0.2.12 MacOS Sierra

'project.clj'にはもっと多くの行がありますか?

+0

私はしません。私もテストするプロジェクトを作ったが、クラッシュした。それをテストしていただきありがとうございます。おそらく、私はJVM + JDKを再インストールしようとするべきであり、アップデートするだけではありません。 – MasterMastic

+0

残念ながら、それは役に立たなかった。私はますますnREPLと関係があると思っています。再度、感謝します! – MasterMastic

+0

あなたは大歓迎です!これはhttps:// githubに関連しているようです。com/clojure-emacs/cider-nrepl/issues/259あなたのlein profilを確認できますか? – burnall