cursive icon indicating copy to clipboard operation
cursive copied to clipboard

Can't start REPL with 2025.1-251, can't report error to Cursive

Open puredanger opened this issue 8 months ago • 12 comments

I updated to latest IntelliJ and Cursive and now I get an error when I start my repl in this project:

java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at cursive.maven.ArtifactRepositoryManagerFacade.resolveDependency(ArtifactRepositoryManagerFacade.kt:68)
	at cursive.deps.shims$shim_classpath_files.invokeStatic(shims.clj:167)
	at cursive.deps.shims$shim_classpath_files.invoke(shims.clj:157)
	at cursive.deps.shims$deps_clj_shim.invokeStatic(shims.clj:182)
	at cursive.deps.shims$deps_clj_shim.doInvoke(shims.clj:173)
	at clojure.lang.RestFn.invoke(RestFn.java:428)
	at cursive.deps.utils$parse_args.invokeStatic(utils.clj:189)
	at cursive.deps.utils$parse_args.invoke(utils.clj:188)
	at clojure.lang.Var.invoke(Var.java:395)
	at cursive.api.DelayedFn.invoke(DelayedFn.java:41)
	at cursive.runner.BaseJvmClojureRunConfiguration.createDepsParameters(ClojureRunnerBase.kt:139)
	at cursive.repl.runner.LocalConfiguration$getRunProfileState$2.createDeferredParameters(LocalReplRunConfigurations.kt:121)
	at cursive.runner.DeferredCommandLineState.cacheDeferredParameters(Deferred.kt:71)
	at cursive.runner.AbstractDeferredRunner$execute$1.run(Deferred.kt:103)
	at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:497)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:118)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$7(CoreProgressManager.java:548)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:252)
	at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:98)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:229)
	at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:43)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:228)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$14(CoreProgressManager.java:680)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:755)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:711)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:679)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:77)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:209)
	at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:98)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$5(ProgressRunner.java:252)
	at com.intellij.openapi.progress.impl.ProgressRunner$ProgressRunnable.run(ProgressRunner.java:513)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$18(ProgressRunner.java:478)
	at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:102)
	at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:102)
	at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:108)
	at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:102)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$19(ProgressRunner.java:474)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:735)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:732)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:732)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.io.UncheckedIOException: java.nio.file.AccessDeniedException: /Users/alex
	at org.eclipse.aether.internal.impl.DefaultTrackingFileManager.update(DefaultTrackingFileManager.java:80)
	at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.write(DefaultUpdateCheckManager.java:529)
	at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.touchArtifact(DefaultUpdateCheckManager.java:476)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.evaluateDownloads(DefaultArtifactResolver.java:636)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:545)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:449)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:261)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:243)
	at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:243)
	at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:183)
	at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.resolveCachedArtifactDescriptor(DfDependencyCollector.java:382)
	at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.getArtifactDescriptorResult(DfDependencyCollector.java:368)
	at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency(DfDependencyCollector.java:218)
	at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency(DfDependencyCollector.java:156)
	at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.process(DfDependencyCollector.java:138)
	at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.doCollectDependencies(DfDependencyCollector.java:108)
	at org.eclipse.aether.internal.impl.collect.DependencyCollectorDelegate.collectDependencies(DependencyCollectorDelegate.java:222)
	at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:87)
	at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:306)
	at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.lambda$prepareRequests$2(ArtifactRepositoryManager.java:383)
	at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.lambda$runWithRetry$4(ArtifactRepositoryManager.java:602)
	at org.jetbrains.idea.maven.aether.RetryProvider$1.retry(RetryProvider.java:22)
	at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.runWithRetry(ArtifactRepositoryManager.java:602)
	at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.prepareRequests(ArtifactRepositoryManager.java:383)
	at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.resolveDependencyAsArtifact(ArtifactRepositoryManager.java:322)
	at org.jetbrains.idea.maven.aether.ArtifactRepositoryManager.resolveDependency(ArtifactRepositoryManager.java:278)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	... 45 more
Caused by: java.nio.file.AccessDeniedException: /Users/alex
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:462)
	at java.base/java.nio.file.Files.createDirectory(Files.java:700)
	at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:808)
	at java.base/java.nio.file.Files.createDirectories(Files.java:794)
	at org.eclipse.aether.internal.impl.DefaultTrackingFileManager.update(DefaultTrackingFileManager.java:77)
	... 71 more

The deps.edn is:

{:paths ["src"]
 :deps
 {org.clojure/clojure {:mvn/version "1.12.0"}
  org.clojure/core.async {:mvn/version "1.9.808-alpha1"}
  io.github.clojure/core.async.flow-monitor {:git/tag "v0.1.0" :git/sha "9d02164"}}}

When I try to report to Cursive in the IDE, that also fails:

Failed to submit exception report:
422 Unprocessable Entity : ErrorResponse(message=Validation Failed, errors=[ErrorItem(resource=Search, field=q, code=invalid, message=The listed users and repositories cannot be searched either because the resources do not exist or you do not have permission to view them.)])

Works fine with clj from the command line.

puredanger avatar Apr 28 '25 19:04 puredanger

I tried many things to modify the deps.edn, disable plugins (like Copilot which I weirdly see there) etc, clear caches, etc. Could not get the REPL to run so I have for now fallen back to the last 2024 version of IntelliJ and Cursive.

puredanger avatar Apr 28 '25 19:04 puredanger

When I try to report to Cursive in the IDE, that also fails:

Ouch, I did some GitHub housekeeping but missed the error report repo, I'll fix that now. I'll check the deps error in the morning.

cmf avatar Apr 29 '25 08:04 cmf

Any idea why this might be happening? I wonder if IntelliJ 2025.1 runs with different privileges somehow? java.nio.file.AccessDeniedException: /Users/alex

cmf avatar Apr 29 '25 08:04 cmf

I don’t understand either why it’s trying to access that, or why it can’t.

puredanger avatar Apr 29 '25 13:04 puredanger

I assume it is somehow related to the maven local repo, but I don’t think I have anything unusual in how my system is set up.

puredanger avatar Apr 29 '25 13:04 puredanger

The repo I was using is now public at https://github.com/puredanger/flow-example if that helps to repro anything - I was just trying to create and run a Clojure REPL there.

puredanger avatar Apr 29 '25 18:04 puredanger

I just tried to repro this, and it all works fine for me. It definitely looks like it's something to do with accessing your local maven repo:

Caused by: java.io.UncheckedIOException: java.nio.file.AccessDeniedException: /Users/alex
	at org.eclipse.aether.internal.impl.DefaultTrackingFileManager.update(DefaultTrackingFileManager.java:80)
	at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.write(DefaultUpdateCheckManager.java:529)
	at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.touchArtifact(DefaultUpdateCheckManager.java:476)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.evaluateDownloads(DefaultArtifactResolver.java:636)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:545)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:449)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:261)
	at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:243)
	at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:243)

which looks like it's trying to create a directory:

Caused by: java.nio.file.AccessDeniedException: /Users/alex
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:462)
	at java.base/java.nio.file.Files.createDirectory(Files.java:700)
	at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:808)
	at java.base/java.nio.file.Files.createDirectories(Files.java:794)
	at org.eclipse.aether.internal.impl.DefaultTrackingFileManager.update(DefaultTrackingFileManager.java:77)
	... 71 more

Unfortunately I don't have a plausible explanation for why this might happen, or why the behaviour would be different between one version of Cursive/IntelliJ to another. None of this code has changed in the last version that I can recall, and all this low-level code is delegated to deps.clj anyway. My best guess would be that the user used to run IntelliJ is different in 2025.1 for some reason? That would be super weird though. I don't think that it could be a difference in the Maven version in IntelliJ, that should all be pulled in by deps.clj in an isolated class loader.

cmf avatar Apr 30 '25 02:04 cmf

Ran into this exact problem. My issue turned out to be related to the MAVEN_REPOSITORY value being set in ~/Library/Application Support/JetBrains/IdeaIC2025.1/options/path.macros.xml

Mine had: <macro name="MAVEN_REPOSITORY" value="/Users/keithharper/.m2/repository" />

Should have been: <macro name="MAVEN_REPOSITORY" value="/Users/keith.harper/.m2/repository" />

I suspect this happened when I switched to a new machine, changed my username, and restored from a backup that had a different username. I wonder if this value just wasn't being used in previous versions of Cursive?

keithharper avatar Jul 09 '25 13:07 keithharper

I checked and that file is also out of date for me, matches a much older machine's setup. @keithharper I think your guess is likely correct.

puredanger avatar Jul 14 '25 21:07 puredanger

@puredanger Do you have any idea why this worked for you on the command line? Surely it should have broken there too?

cmf avatar Jul 21 '25 21:07 cmf

I don't understand the question - how would I be using ~/Library/Application Support/JetBrains/IdeaIC2025.1/options/path.macros.xml from the command line?

puredanger avatar Jul 21 '25 21:07 puredanger

Oh, my apologies, I misread and thought it was a Maven settings file that was out of date, not an IntelliJ one.

cmf avatar Jul 21 '25 22:07 cmf