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

REPL not starting for Leiningen project including Java code #2633

Open
JDurstberger opened this issue Jan 11, 2022 · 3 comments
Open

REPL not starting for Leiningen project including Java code #2633

JDurstberger opened this issue Jan 11, 2022 · 3 comments

Comments

@JDurstberger
Copy link

Description

I am unable to start the REPL for a leiningen project which includes Java code.
The error message is "Error Running ‘REPL’: Error executing Leiningen configuration"

Versions

OS: macOS Monterey 12.0.1
IntelliJ: IntelliJ IDEA 2021.3.1 (Ultimate Edition)
Cursive: 1.12.1-2021.3 (also with 1.12.2-eap1-2021.3)

Steps to Reproduce

A simple project with one Clojure and one Java file is enough to reproduce this issue.

.
├── lein-issue.iml
├── project.clj
└── src
    ├── clojure
    │   └── leinissue
    │       └── core.clj
    └── java
        └── leinissue
            └── SomeClass.java

project.clj

(defproject lein-issue "0.0.0"

  :dependencies [[org.clojure/clojure "1.10.3"]]

  :java-source-paths ["src/java"]
  :source-paths ["src/clojure"])

core.clj

(ns leinissue.core)

(println "Hello, world!")

SomeClass.java

package leinissue;

public class SomeClass {
}
  1. Create files as described above
  2. Open project with IntelliJ
  3. Create new Local REPL configuration (all values as default values)
  4. Try running the REPL
@fixedorgo
Copy link

Unfortunately the issue is still reproducible. I will add more details:

  • idea.log contains following lines before exception trace
2023-01-23 12:09:42,356 [ 335793]   INFO - STDERR - Java compiler not found; Be sure to use java from a JDK
2023-01-23 12:09:42,356 [ 335793]   INFO - STDERR - rather than a JRE by modifying PATH or setting JAVA_CMD.
  • Looks like this is where this exception is thrown be Leiningen
  • In the same project, but without :java-source-paths, JavacTool is successfully loaded from $JAVA_HOME/lib/tools.jar (it doesn't seem to have anything to do with PATH or JAVA_CMD as mentioned before)
(javax.tools.ToolProvider/getSystemJavaCompiler)
=> #object[com.sun.tools.javac.api.JavacTool 0x1285ea8d "com.sun.tools.javac.api.JavacTool@1285ea8d"]
  • Full stacktrace from idea.log:
2023-01-23 12:09:42,356 [ 335793]   INFO - STDERR - Java compiler not found; Be sure to use java from a JDK
2023-01-23 12:09:42,356 [ 335793]   INFO - STDERR - rather than a JRE by modifying PATH or setting JAVA_CMD.
2023-01-23 12:09:42,392 [ 335829]   WARN - #cursive.shim.IndicatorBridge - Exit called in Leiningen:
java.lang.RuntimeException: null
 at cursive.leiningen.project$add_standard_hooks_BANG_$fn__2322$fn__2323.invoke (project.clj:514)
    cursive.leiningen.project$add_standard_hooks_BANG_$fn__2322.doInvoke (project.clj:514)
    clojure.lang.RestFn.applyTo (RestFn.java:139)
    clojure.core$apply.invokeStatic (core.clj:669)
    clojure.core$apply.invoke (core.clj:662)
    cursive.leiningen.hooke$compose_hooks$fn__576.doInvoke (hooke.clj:43)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:662)
    cursive.leiningen.hooke$run_hooks.invokeStatic (hooke.clj:49)
    cursive.leiningen.hooke$run_hooks.invoke (hooke.clj:48)
    cursive.leiningen.hooke$prepare_for_hooks$fn__581$fn__582.doInvoke (hooke.clj:57)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    leiningen.javac$run_javac_subprocess.invokeStatic (javac.clj:133)
    leiningen.javac$run_javac_subprocess.invoke (javac.clj:115)
    leiningen.javac$javac.invokeStatic (javac.clj:147)
    leiningen.javac$javac.doInvoke (javac.clj:136)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.RestFn.applyTo (RestFn.java:132)
    clojure.lang.Var.applyTo (Var.java:705)
    clojure.core$apply.invokeStatic (core.clj:669)
    clojure.core$apply.invoke (core.clj:662)
    leiningen.core.main$partial_task$fn__7380.doInvoke (main.clj:284)
    clojure.lang.RestFn.invoke (RestFn.java:410)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.RestFn.applyTo (RestFn.java:132)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:669)
    clojure.core$apply.invoke (core.clj:662)
    leiningen.core.main$apply_task.invokeStatic (main.clj:334)
    leiningen.core.main$apply_task.invoke (main.clj:320)
    leiningen.core.eval$run_prep_tasks.invokeStatic (eval.clj:51)
    leiningen.core.eval$run_prep_tasks.invoke (eval.clj:43)
    leiningen.core.eval$prep.invokeStatic (eval.clj:86)
    leiningen.core.eval$prep.invoke (eval.clj:73)
    cursive.leiningen.task$prep_hook$fn__2422.invoke (task.clj:40)
    clojure.lang.AFn.applyToHelper (AFn.java:156)
    clojure.lang.AFn.applyTo (AFn.java:144)
    clojure.core$apply.invokeStatic (core.clj:669)
    clojure.core$apply.invoke (core.clj:662)
    cursive.leiningen.hooke$compose_hooks$fn__576.doInvoke (hooke.clj:43)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:662)
    cursive.leiningen.hooke$run_hooks.invokeStatic (hooke.clj:49)
    cursive.leiningen.hooke$run_hooks.invoke (hooke.clj:48)
    cursive.leiningen.hooke$prepare_for_hooks$fn__581$fn__582.doInvoke (hooke.clj:57)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    leiningen.core.eval$eval_in_project.invokeStatic (eval.clj:367)
    leiningen.core.eval$eval_in_project.invoke (eval.clj:361)
    clojure.lang.AFn.applyToHelper (AFn.java:160)
    clojure.lang.AFn.applyTo (AFn.java:144)
    clojure.core$apply.invokeStatic (core.clj:669)
    clojure.core$apply.invoke (core.clj:662)
    cursive.leiningen.task$eval_hook$fn__2419.doInvoke (task.clj:29)
    clojure.lang.RestFn.applyTo (RestFn.java:142)
    clojure.core$apply.invokeStatic (core.clj:669)
    clojure.core$apply.invoke (core.clj:662)
    cursive.leiningen.hooke$compose_hooks$fn__576.doInvoke (hooke.clj:43)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:667)
    clojure.core$apply.invoke (core.clj:662)
    cursive.leiningen.hooke$run_hooks.invokeStatic (hooke.clj:49)
    cursive.leiningen.hooke$run_hooks.invoke (hooke.clj:48)
    cursive.leiningen.hooke$prepare_for_hooks$fn__581$fn__582.doInvoke (hooke.clj:57)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:669)
    clojure.core$apply.invoke (core.clj:662)
    leiningen.repl$repl$run__11566.invoke (repl.clj:449)
    leiningen.repl$repl.invokeStatic (repl.clj:457)
    leiningen.repl$repl.doInvoke (repl.clj:369)
    clojure.lang.RestFn.invoke (RestFn.java:425)
    clojure.lang.AFn.applyToHelper (AFn.java:156)
    clojure.lang.RestFn.applyTo (RestFn.java:132)
    clojure.lang.Var.applyTo (Var.java:705)
    clojure.core$apply.invokeStatic (core.clj:669)
    clojure.core$apply.invoke (core.clj:662)
    leiningen.core.main$partial_task$fn__7380.doInvoke (main.clj:284)
    clojure.lang.RestFn.applyTo (RestFn.java:139)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:31)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:669)
    clojure.core$apply.invoke (core.clj:662)
    leiningen.core.main$apply_task.invokeStatic (main.clj:334)
    leiningen.core.main$apply_task.invoke (main.clj:320)
    leiningen.core.main$resolve_and_apply.invokeStatic (main.clj:343)
    leiningen.core.main$resolve_and_apply.invoke (main.clj:336)
    cursive.leiningen.task$task_details$fn__2445.invoke (task.clj:78)
    cursive.leiningen.task$task_details.invokeStatic (task.clj:73)
    cursive.leiningen.task$task_details.invoke (task.clj:42)
    clojure.lang.Var.invoke (Var.java:388)
    org.projectodd.shimdandy.impl.ClojureRuntimeShimImpl.invoke (ClojureRuntimeShimImpl.java:119)
    org.projectodd.shimdandy.impl.ClojureRuntimeShimImpl.invoke (ClojureRuntimeShimImpl.java:112)
    cursive.shim.ShimBootstrap$Shim.apply (ShimBootstrap.java:53)
    cursive.repl.runner.LocalConfiguration$createLeinParameters$ret$1.invoke (ReplRunConfigurations.kt:458)
    cursive.repl.runner.LocalConfiguration$createLeinParameters$ret$1.invoke (ReplRunConfigurations.kt:457)
    cursive.shim.ShimProvider.withShim (Shim.kt:117)
    cursive.repl.runner.LocalConfiguration.createLeinParameters (ReplRunConfigurations.kt:457)
    cursive.repl.runner.LocalConfiguration.access$createLeinParameters (ReplRunConfigurations.kt:388)
    cursive.repl.runner.LocalConfiguration$getRunProfileState$1.createDeferredParameters (ReplRunConfigurations.kt:427)
    cursive.runner.DeferredCommandLineState.cacheDeferredParameters (Deferred.kt:72)
    cursive.runner.AbstractDeferredRunner$execute$1.run (Deferred.kt:104)
    com.intellij.openapi.progress.impl.CoreProgressManager.startTask (CoreProgressManager.java:423)
    com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask (ProgressManagerImpl.java:114)
    com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$6 (CoreProgressManager.java:474)
    com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3 (ProgressRunner.java:252)
    com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2 (CoreProgressManager.java:188)
    com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13 (CoreProgressManager.java:589)
    com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun (CoreProgressManager.java:664)
    com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress (CoreProgressManager.java:620)
    com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress (CoreProgressManager.java:588)
    com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress (ProgressManagerImpl.java:60)
    com.intellij.openapi.progress.impl.CoreProgressManager.runProcess (CoreProgressManager.java:175)
    com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4 (ProgressRunner.java:252)
    java.util.concurrent.CompletableFuture$AsyncSupply.run (CompletableFuture.java:1768)
    java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1136)
    java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
    java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run (Executors.java:702)
    java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run (Executors.java:699)
    java.security.AccessController.doPrivileged (AccessController.java:399)
    java.util.concurrent.Executors$PrivilegedThreadFactory$1.run (Executors.java:699)
    java.lang.Thread.run (Thread.java:833)

2023-01-23 12:09:42,395 [ 335832]   INFO - #c.i.e.r.ExecutionUtil - Error running 'REPL':<br>Error executing Leiningen configuration.
com.intellij.execution.ExecutionException: Error executing Leiningen configuration.
	at cursive.repl.runner.LocalConfiguration.createLeinParameters(ReplRunConfigurations.kt:511)
	at cursive.repl.runner.LocalConfiguration.access$createLeinParameters(ReplRunConfigurations.kt:388)
	at cursive.repl.runner.LocalConfiguration$getRunProfileState$1.createDeferredParameters(ReplRunConfigurations.kt:427)
	at cursive.runner.DeferredCommandLineState.cacheDeferredParameters(Deferred.kt:72)
	at cursive.runner.AbstractDeferredRunner$execute$1.run(Deferred.kt:104)
	at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:423)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:114)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$6(CoreProgressManager.java:474)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:252)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:589)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:664)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:620)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:588)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:252)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
	at java.base/java.lang.Thread.run(Thread.java:833)

Please any workaround is very welcome. 🙏

@cursive-ide
Copy link
Owner

My apologies for the very long time this has been outstanding. I've just tried to reproduce this, and I can't - the repro project works fine for me. Is this still a problem affecting anyone?

@JDurstberger
Copy link
Author

I am no longer working on this project, so I am no longer affected by it.
Not sure what the status for others is.

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