Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Leiningen 2.8.2, cider-nrepl 0.19.0-SNAPSHOT, nrepl 0.5.3 ClassCastException nrepl.transport.Transport #574

Closed
leblowl opened this issue Dec 14, 2018 · 7 comments

Comments

@leblowl
Copy link

leblowl commented Dec 14, 2018

Not sure what is going on, but just updated Leiningen and getting this error which references cider-nrepl. Not even sure how to start tracking this one down. Any thoughts? I am going to start by updating to Java 11 since I am planning to do that anyway.

Expected behavior

lein repl launches REPL

Actual behavior

Warning: implicit middleware found: cider-nrepl.plugin/middleware 
Please declare all middleware in :middleware as implicit loading is deprecated.
Warning: implicit hook found: lein-cprop.plugin/hooks 
Hooks are deprecated and will be removed in a future version.
Warning: implicit hook found: lein-environ.plugin/hooks 
Hooks are deprecated and will be removed in a future version.
WARNING: partition already refers to: #'clojure.core/partition in namespace: tools.db, being replaced by: #'tools.db/partition
WARNING: type already refers to: #'clojure.core/type in namespace: tools.db.enum, being replaced by: #'tools.db.enum/type
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-apropos, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-classpath, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-complete, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-debug, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-enlighten, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-format, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-info, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-inspect, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-macroexpand, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-slurp, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-ns, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-out, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-content-type, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-slurp, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-pprint, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-pprint-fn, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-profile, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-refresh, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-resource, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-spec, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-stacktrace, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-test, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-trace, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-tracker, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-undef, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-version, see nrepl.middleware/set-descriptor!
nREPL server started on port 36457 on host 127.0.0.1 - nrepl://127.0.0.1:36457
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by cider.inlined_deps.orchard.v0v3v4_20181106v231743_1.dynapath.v0v2v5.dynapath.defaults$eval55350$fn__55351 to method java.net.URLClassLoader.addURL(java.net.URL)
WARNING: Please consider reporting this to the maintainers of cider.inlined_deps.orchard.v0v3v4_20181106v231743_1.dynapath.v0v2v5.dynapath.defaults$eval55350$fn__55351
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "nREPL-worker-0" java.lang.ClassCastException: cider.nrepl.middleware.track_state$make_transport$reify__55843 cannot be cast to nrepl.transport.Transport
	at nrepl.middleware.pr_values$printing_transport$reify__52211.send(pr_values.clj:34)
	at nrepl.middleware.interruptible_eval$evaluate$fn__52248$fn__52262.invoke(interruptible_eval.clj:125)
	at clojure.main$repl$fn__8581.invoke(main.clj:263)
	at clojure.main$repl.invokeStatic(main.clj:261)
	at clojure.main$repl.doInvoke(main.clj:177)
	at clojure.lang.RestFn.invoke(RestFn.java:1523)
	at nrepl.middleware.interruptible_eval$evaluate$fn__52248.invoke(interruptible_eval.clj:83)
	at clojure.lang.AFn.applyToHelper(AFn.java:152)
	at clojure.lang.AFn.applyTo(AFn.java:144)
	at clojure.core$apply.invokeStatic(core.clj:657)
	at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1965)
	at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1965)
	at clojure.lang.RestFn.invoke(RestFn.java:425)
	at nrepl.middleware.interruptible_eval$evaluate.invokeStatic(interruptible_eval.clj:81)
	at nrepl.middleware.interruptible_eval$evaluate.invoke(interruptible_eval.clj:50)
	at nrepl.middleware.interruptible_eval$interruptible_eval$fn__52291$fn__52294.invoke(interruptible_eval.clj:221)
	at nrepl.middleware.interruptible_eval$run_next$fn__52286.invoke(interruptible_eval.clj:189)
	at clojure.lang.AFn.run(AFn.java:22)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:844)

Steps to reproduce the problem

profile:

{:user {:plugins [[cider/cider-nrepl "0.19.0-SNAPSHOT"]]
           :dependencies [[nrepl "0.5.3"]]}}

change into my private project directory and run lein repl

Environment & Version information

cider-nrepl version

0.19.0-SNAPSHOT

Java version

java 10.0.2 2018-07-17

Operating system

Linux

@leblowl
Copy link
Author

leblowl commented Dec 14, 2018

I got a working REPL by using this profile as outlined in the README:

{:user {:dependencies [[cider/cider-nrepl "0.19.0-SNAPSHOT"]
                       [nrepl "0.5.3"]]
        :repl-options {:nrepl-middleware
                 [cider.nrepl/wrap-apropos
                  cider.nrepl/wrap-classpath
                  cider.nrepl/wrap-complete
                  cider.nrepl/wrap-debug
                  cider.nrepl/wrap-format
                  cider.nrepl/wrap-info
                  cider.nrepl/wrap-inspect
                  cider.nrepl/wrap-macroexpand
                  cider.nrepl/wrap-ns
                  cider.nrepl/wrap-spec
                  cider.nrepl/wrap-pprint
                  cider.nrepl/wrap-pprint-fn
                  cider.nrepl/wrap-profile
                  cider.nrepl/wrap-refresh
                  cider.nrepl/wrap-resource
                  cider.nrepl/wrap-stacktrace
                  cider.nrepl/wrap-test
                  cider.nrepl/wrap-trace
                  cider.nrepl/wrap-out
                  cider.nrepl/wrap-undef
                  cider.nrepl/wrap-version]}}}

I think the issue is something to do with how Leiningen is handling the nrepl-middleware? Not entirely sure how all this stuff works.

I still get this output:

[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-apropos, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-classpath, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-complete, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-debug, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-format, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-info, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-inspect, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-macroexpand, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-ns, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-spec, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-pprint, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-pprint-fn, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-profile, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-refresh, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-resource, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-stacktrace, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-test, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-trace, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-out, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-undef, see nrepl.middleware/set-descriptor!
[WARNING] No nREPL middleware descriptor in metadata of #'cider.nrepl/wrap-version, see nrepl.middleware/set-descriptor!

But it works

@bbatsov
Copy link
Member

bbatsov commented Dec 17, 2018

@leblowl If I had to guess I'd say you probably have something loading the legacy tools.nrepl in your deps or in your user.clj. The warnings you get would normally mean that cider-nrepl found that you had tools.nrepl loaded at the time it was loading (instead of the modern nREPL).

I think the issue is something to do with how Leiningen is handling the nrepl-middleware? Not entirely sure how all this stuff works.

Seems to me that you've configured the middleware properly.

@leblowl
Copy link
Author

leblowl commented Dec 17, 2018 via email

@bbatsov
Copy link
Member

bbatsov commented Dec 21, 2018

@leblowl Did you manage to figure this out?

@leblowl
Copy link
Author

leblowl commented Dec 21, 2018

Sorry, got sidetracked on another task. Apparently figwheel-sidecar depends on tools.nrepl and requires it. When I exclude tools.nrepl, figwheel complains. I removed figwheel-sidecar and both warnings and errors are gone. Thanks!

@leblowl leblowl closed this as completed Dec 22, 2018
@bbatsov
Copy link
Member

bbatsov commented Dec 22, 2018

Got it!

I'll link this ticket to a related upstream issue bhauman/lein-figwheel#718

@danielcompton
Copy link

Btw, an easy way to figure out where a dependency is coming from is lein deps :why <group>/<artifact>.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants