I recently bumped the tools.reader dep in `cider-nrepl` and this caused the following problem on `cider-jack-in`:
Oct 15, 2018 5:50:23 PM clojure.tools.logging$eval579$fn__582 invoke
SEVERE: Unhandled REPL handler exception processing message {:op init-debugger, rint-level 10, rint-length 10, :session cc619163-753b-46b1-9334-cf6e9459aac4, :id 8}
java.lang.ClassNotFoundException: clojure.tools.reader.reader_types.SourceLoggingPushbackReader, compilingcider/inlined_deps/toolsreader/v1v3v0/clojure/tools/reader.clj:1:1)
at clojure.lang.Compiler.load(Compiler.java:7526)
at clojure.lang.RT.loadResourceScript(RT.java:379)
at clojure.lang.RT.loadResourceScript(RT.java:370)
at clojure.lang.RT.load(RT.java:460)
at clojure.lang.RT.load(RT.java:426)
at clojure.core$load$fn__6548.invoke(core.clj:6046)
at clojure.core$load.invokeStatic(core.clj:6045)
at clojure.core$load.doInvoke(core.clj:6029)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5848)
at clojure.core$load_one.invoke(core.clj:5843)
at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
at clojure.core$load_lib.invokeStatic(core.clj:5887)
at clojure.core$load_lib.doInvoke(core.clj:5868)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:659)
at clojure.core$load_libs.invokeStatic(core.clj:5925)
at clojure.core$load_libs.doInvoke(core.clj:5909)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:659)
at clojure.core$require.invokeStatic(core.clj:5947)
at clojure.core$require.doInvoke(core.clj:5947)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at cider.inlined_deps.toolsnamespace.v0v3v0_alpha4.clojure.tools.namespace.parse$eval2867$loading_6434auto___2868.invoke(parse.cljc:9)
at cider.inlined_deps.toolsnamespace.v0v3v0_alpha4.clojure.tools.namespace.parse$eval2867.invokeStatic(parse.cljc:9)
at cider.inlined_deps.toolsnamespace.v0v3v0_alpha4.clojure.tools.namespace.parse$eval2867.invoke(parse.cljc:9)
... skipping some lines ...
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: clojure.tools.reader.reader_types.SourceLoggingPushbackReader
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:69)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at clojure.lang.DynamicClassLoader.loadClass(DynamicClassLoader.java:77)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at clojure.lang.RT.classForName(RT.java:2204)
at clojure.lang.RT.classForNameNonLoading(RT.java:2217)
at cider.inlined_deps.toolsreader.v1v3v0.clojure.tools.reader$eval3532$loading_6434auto___3533.invoke(reader.clj:9)
at cider.inlined_deps.toolsreader.v1v3v0.clojure.tools.reader$eval3532.invokeStatic(reader.clj:9)
at cider.inlined_deps.toolsreader.v1v3v0.clojure.tools.reader$eval3532.invoke(reader.clj:9)
at clojure.lang.Compiler.eval(Compiler.java:7062)
at clojure.lang.Compiler.eval(Compiler.java:7051)
at clojure.lang.Compiler.load(Compiler.java:7514)
... more
Unfortunately tools.reader's changelog hasn't been updated in a while, so I'm not sure what recent change might have caused this.
This might also be related to the way we're rewriting deps in cider-nrepl (using mranderson to avoid conflicts with user deps), but everything work just fine with older releases. Here's the commit in question https://github.com/clojure-emacs/cider-nrepl/commit/cded84d3ebddfcafe7fa013b39fa472afd1a576a
I've also checked with 1.2.2 and everything works fine with it, so something must have changed recently.
Hi, I've just updated the changelog to match the latest releases.
As for this issue, I reckon the change that introduced this issue in cider is https://github.com/clojure/tools.reader/commit/8c125101b30e66bf019ae66e228f1481ac26602f#diff-c18d0a09dfeefd43739ea3593cf209d2R25
The namespace declaration there is correct, requiring the namespace before importing the class, this looks like a tools.namespace issue whereby it doesn't know how to deal with this idiom, definitely not an issue on the tools.reader side
Thanks for the fast response!