2017-02-01 14 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 были моими единственными зависимостями проекта). Он также разбился, и я заметил, что даже попытка использовать Swing напрямую вызывает крах. Удаление качелей из зависимостей заставило его снова работать. Теперь мой проект имеет другие зависимости (ни один из них не связан с 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, это происходит на:
РЕПЛ-й 0.3.7, 0.2.12 nREPL
Clojure 1.8.0
Java HotSpot (TM) 64-разрядного сервера VM 1.8.0_121-b13
Windows 10 Pro x64

Я также попытался сделать uberjar, и он работает нормально.
Так что, похоже, только сбой lein repl и REPL CIDER (так я предполагаю nREPL?).

Как я могу диагностировать и решать это?

+0

Возможный дубликат [Что вызывает мой java.net.SocketException: соединение сброшено?] (Http://stackoverflow.com/questions/585599/whats-causing-my-java-net-socketexception-connection-reset) –

+0

@HovercraftFullOfEels afaik lein создает 2 JVM, один для себя и один для программы, и это происходит, когда программа выходит из строя, поэтому соединение закрывается. Я думаю, что в любом случае это не имеет значения, поскольку единственное, что существует, это тип исключения. – MasterMastic

+0

Я не специалист в этом типе исключений, поэтому я не «задушил» ваш вопрос, но я знаю, что исключение может возникнуть, когда сокет закрыт с другой стороны. –

ответ

0

я не могу воспроизвести его на минимальном проекте

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

Clojure 1.8.0 Java HotSpot (TM) 64-разрядный сервер VM 1.8.0_112-b16 REPL-у 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? – burnall

 Смежные вопросы

  • Нет связанных вопросов^_^