You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When invoking the nREPL stacktrace op after trying to evaluate an unbound symbol at the repl, using clojure cli and clojure 1.10, stacktrace causes an internal exception in nrepl, which is never reported to the nrepl client, but logged to stderr.
Expected behavior
Stacktrace should return the stack trace, or report an error to the nREPL client.
Actual behavior
Stacktrace does not return anything, but an exception is logged in the console:
ERROR: Unhandled REPL handler exception processing message {:op stacktrace, :id 10, :session 18abd824-1cdc-40df-83c2-e309783885a1}
java.lang.NullPointerException
at clojure.string$replace_first.invokeStatic(string.clj:165)
at clojure.string$replace_first.invoke(string.clj:138)
at cider.nrepl.middleware.stacktrace$relative_path.invokeStatic(stacktrace.clj:195)
at cider.nrepl.middleware.stacktrace$relative_path.invoke(stacktrace.clj:189)
at cider.nrepl.middleware.stacktrace$extract_location.invokeStatic(stacktrace.clj:209)
at cider.nrepl.middleware.stacktrace$extract_location.invoke(stacktrace.clj:197)
at clojure.core$comp$fn__5792.invoke(core.clj:2569)
at clojure.core$map$fn__5851.invoke(core.clj:2755)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:51)
at clojure.lang.RT.seq(RT.java:531)
at clojure.core$seq__5387.invokeStatic(core.clj:137)
at clojure.core$seq__5387.invoke(core.clj:137)
at cider.nrepl.middleware.stacktrace$handle_stacktrace.invokeStatic(stacktrace.clj:319)
at cider.nrepl.middleware.stacktrace$handle_stacktrace.invoke(stacktrace.clj:316)
at clojure.lang.Var.invoke(Var.java:388)
at cider.nrepl$wrap_stacktrace$fn__1717.invoke(nrepl.clj:413)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_undef$fn__1749.invoke(nrepl.clj:472)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_format$fn__1635.invoke(nrepl.clj:190)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_resource$fn__1701.invoke(nrepl.clj:385)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_profile$fn__1685.invoke(nrepl.clj:322)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_complete$fn__1609.invoke(nrepl.clj:140)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_ns$fn__1669.invoke(nrepl.clj:281)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_spec$fn__1709.invoke(nrepl.clj:397)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at nrepl.middleware.interruptible_eval$interruptible_eval$fn__940.invoke(interruptible_eval.clj:246)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_debug$fn__1619.invoke(nrepl.clj:160)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_enlighten$fn__1627.invoke(nrepl.clj:186)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at nrepl.middleware.session$add_stdin$fn__1057.invoke(session.clj:243)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at nrepl.middleware.load_file$wrap_load_file$fn__977.invoke(load_file.clj:79)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_content_type$fn__1577.invoke(nrepl.clj:107)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_info$fn__1643.invoke(nrepl.clj:205)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.piggieback$wrap_cljs_repl$fn__1458.invoke(piggieback.clj:314)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_inspect$fn__1653.invoke(nrepl.clj:224)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at nrepl.middleware.pr_values$pr_values$fn__869.invoke(pr_values.clj:69)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_test$fn__1725.invoke(nrepl.clj:423)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl.middleware.pprint$handle_pprint_fn.invokeStatic(pprint.clj:29)
at cider.nrepl.middleware.pprint$handle_pprint_fn.invoke(pprint.clj:24)
at clojure.lang.Var.invoke(Var.java:388)
at cider.nrepl$wrap_pprint_fn$fn__1567.invoke(nrepl.clj:87)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_tracker$fn__1741.invoke(nrepl.clj:461)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_out$fn__1677.invoke(nrepl.clj:313)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at nrepl.middleware.session$session$fn__1042.invoke(session.clj:197)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_version$fn__1757.invoke(nrepl.clj:480)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at cider.nrepl$wrap_classpath$fn__1601.invoke(nrepl.clj:134)
at nrepl.middleware$wrap_conj_descriptor$fn__611.invoke(middleware.clj:17)
at nrepl.server$handle_STAR_.invokeStatic(server.clj:18)
at nrepl.server$handle_STAR_.invoke(server.clj:15)
at nrepl.server$handle$fn__1079.invoke(server.clj:27)
at clojure.core$binding_conveyor_fn$fn__5739.invoke(core.clj:2030)
at clojure.lang.AFn.call(AFn.java:18)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Interestingly the stderr report when the exception occurs is:
Clojure 1.9:
CompilerException java.lang.RuntimeException: Unable to resolve symbol: wer in this context, compiling:(null:0:0)
vs
Clojure 1.10:
Syntax error compiling at (REPL:0:0).
It looks to me to be identical to #549, and it is almost as though location is nil in 1.9, but REPL in 1.10, so cider tries to treat it as an error coming from a file, but I haven't looked deeply.
This is probably a duplicate of clojure-emacs/cider#2443, although that's cider not nrepl itself.
Environment & Version information
cider-nrepl version
0.19.0, 0.20.1-SNAPSHOT and 0.20.0
Java version
1.8
Operating system
Windows 10
The text was updated successfully, but these errors were encountered:
When invoking the nREPL
stacktrace
op after trying to evaluate an unbound symbol at the repl, using clojure cli and clojure 1.10, stacktrace causes an internal exception in nrepl, which is never reported to the nrepl client, but logged to stderr.Expected behavior
Stacktrace should return the stack trace, or report an error to the nREPL client.
Actual behavior
Stacktrace does not return anything, but an exception is logged in the console:
Steps to reproduce the problem
deps.edn:
Launched under windows with the following command:
The issue seems to be clojure 1.10, for example:
behaves as expected.
Interestingly the stderr report when the exception occurs is:
Clojure 1.9:
vs
Clojure 1.10:
It looks to me to be identical to #549, and it is almost as though location is
nil
in 1.9, butREPL
in 1.10, so cider tries to treat it as an error coming from a file, but I haven't looked deeply.This is probably a duplicate of clojure-emacs/cider#2443, although that's cider not nrepl itself.
Environment & Version information
cider-nrepl version
0.19.0, 0.20.1-SNAPSHOT and 0.20.0
Java version
1.8
Operating system
Windows 10
The text was updated successfully, but these errors were encountered: