will not start with multiple or non-existent :java-source-path #100

Open
kurtharriger opened this Issue Jan 7, 2012 · 2 comments

Projects

None yet

2 participants

@kurtharriger

I was trying to use multiple java source paths as described here: technomancy/leiningen#155 and discovered that swank no longer works, here is the stack trace. Also discovered a different error occurs if the java-source-path does not exist. I didn't save the stack trace for that one as it was more obvious to me then what the issue was this one had me guessing for a little while.

Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumentException: No implementation of method: :as-file of protocol: #'clojure.java.io/Coercions found for class: java.lang.Character (NO_SOURCE_FILE:0)
at clojure.lang.Compiler.eval(Compiler.java:5440)
at clojure.lang.Compiler.eval(Compiler.java:5391)
at clojure.core$eval.invoke(core.clj:2382)
at clojure.main$eval_opt.invoke(main.clj:235)
at clojure.main$initialize.invoke(main.clj:254)
at clojure.main$script_opt.invoke(main.clj:270)
at clojure.main$main.doInvoke(main.clj:354)
at clojure.lang.RestFn.invoke(RestFn.java:457)
at clojure.lang.Var.invoke(Var.java:377)
at clojure.lang.AFn.applyToHelper(AFn.java:172)
at clojure.lang.Var.applyTo(Var.java:482)
at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: No implementation of method: :as-file of protocol: #'clojure.java.io/Coercions found for class: java.lang.Character
at clojure.lang.LazySeq.sval(LazySeq.java:47)
at clojure.lang.LazySeq.seq(LazySeq.java:56)
at clojure.lang.RT.seq(RT.java:450)
at clojure.core$seq.invoke(core.clj:122)
at leiningen.javac$javac.doInvoke(javac.clj:44)
at clojure.lang.RestFn.invoke(RestFn.java:410)
at leiningen.compile$compile.invoke(compile.clj:265)
at leiningen.compile$prep$fn__1947.invoke(compile.clj:141)
at leiningen.compile$prep.invoke(compile.clj:140)
at leiningen.compile$eval_in_project.doInvoke(compile.clj:194)
at clojure.lang.RestFn.invoke(RestFn.java:425)
at leiningen.swank$swank.doInvoke(swank.clj:26)
at clojure.lang.RestFn.invoke(RestFn.java:445)
at leiningen.swank$swank.invoke(swank.clj:27)
at leiningen.swank$swank.invoke(swank.clj:28)
at clojure.lang.Var.invoke(Var.java:365)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.Var.applyTo(Var.java:482)
at clojure.core$apply.invoke(core.clj:542)
at leiningen.core$apply_task.invoke(core.clj:259)
at leiningen.core$_main.doInvoke(core.clj:325)
at clojure.lang.RestFn.invoke(RestFn.java:410)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.core$apply.invoke(core.clj:542)
at leiningen.core$_main.invoke(core.clj:328)
at user$eval42.invoke(NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:5424)
... 11 more
Caused by: java.lang.IllegalArgumentException: No implementation of method: :as-file of protocol: #'clojure.java.io/Coercions found for class: java.lang.Character
at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:471)
at clojure.java.io$fn__7336$G__7331__7341.invoke(io.clj:34)
at clojure.java.io$file.invoke(io.clj:401)
at leiningen.util.paths$normalize_path.invoke(paths.clj:6)
at leiningen.javac$extract_javac_task.invoke(javac.clj:22)
at leiningen.javac$extract_javac_tasks$iter__3734__3738$fn__3739$fn__3740.invoke(javac.clj:31)
at leiningen.javac$extract_javac_tasks$iter__3734__3738$fn__3739.invoke(javac.clj:30)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
... 38 more

@technomancy
Owner

Is this a problem with swank or Leiningen?

@kurtharriger

Project builds fine, error occurs arger typing lein swank.
I was creating a lein-thrift plugin and didn't want to clutter the users src/java directory if they were using it so they could clean and regenerate, so instead I made the plugin a bit smarter and it called javac after code generation with a modified project which works well enough for me. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment