[NREPL-46] nREPL crashes when required more than one time with :reload-all Created: 21/Dec/13 Updated: 19/Aug/14
|Reporter:||Alex Fowler||Assignee:||Chas Emerick|
Irrelevant, but the provided test case project is for CounterClockWise on Eclipse. Although it should run just fine with vanilla lein.
When the namespace "clojure.tools.nrepl.server" is required more than once with :reload-all option, nREPL crashes. Accrding to current info it occures because some protocol instances get re-evaluated and are no longer the same JVM classes as they were before reload-all.
Steps to reproduce the bug in CCW:
Upon trying CCW autocompetion, the following exception occures, what might give some hint as to why:
Exception in thread "nREPL-worker-2" java.lang.IllegalArgumentException: No implementation of method: :send of protocol: #'clojure.tools.nrepl.transport/Transport found for class: clojure.tools.nrepl.middleware.pr_values$pr_values$fn$reify__1283
|Comment by Chas Emerick [ 19/Aug/14 8:56 PM ]|
Confirmed. Using lein repl (though you're right that the particulars of the tooling shouldn't matter):
Not sure if it's the protocol or the types that are implicated (or both), but resolving this is going to be unpleasant.
|Comment by Chas Emerick [ 19/Aug/14 8:57 PM ]|
Couple of questions: