ForNeVeR / ForNeVeR/haskeletor
UnsupportedOperationException: Failed to map <path> into nio Path
- Dominant language
- Scala
- Stars
- 6
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
Happened in IntelliJ IDEA with Haskeletor v2.0.0 installed:
```
java.lang.UnsupportedOperationException: Failed to map jar://W:/.gradle/caches/9.4.1/transforms/9792bdbe2a85078e6086bfb2c6f8554b/transformed/riderRD-2026.1.1/plugins/rider-plugins-xaml-preview/lib/rider-plugins-xaml-preview.jar!/ (invalid) (filesystem com.intellij.openapi.vfs.impl.jar.JarFileSystemImpl@2731287a) into nio Path
at com.intellij.openapi.vfs.VirtualFile.toNioPath(VirtualFile.java:150)
at me.fornever.haskeletor.projectmodel.HaskellProjectManager.processConfigFile(HaskellProjectManager.kt:144)
at me.fornever.haskeletor.projectmodel.HaskellProjectManager.access$processConfigFile(HaskellProjectManager.kt:37)
at me.fornever.haskeletor.projectmodel.HaskellProjectManager$createVfsListener$1.after(HaskellProjectManager.kt:121)
at com.intellij.util.messages.impl.MessageBusImplKt.invokeMethod(MessageBusImpl.kt:831)
at com.intellij.util.messages.impl.MessageBusImplKt.invokeListener(MessageBusImpl.kt:775)
at com.intellij.util.messages.impl.MessageBusImplKt.executeOrAddToQueue(MessageBusImpl.kt:596)
at com.intellij.util.messages.impl.ToDirectChildrenMessagePublisher.publish$intellij_platform_core(CompositeMessageBus.kt:193)
at com.intellij.util.messages.impl.MessagePublisher.invoke(MessageBusImpl.kt:544)
at jdk.proxy2/jdk.proxy2.$Proxy119.after(Unknown Source)
at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.lambda$fireAfterEvents$6(PersistentFSImpl.java:1797)
at com.intellij.openapi.vfs.newvfs.impl.VfsThreadingUtil.runActionOnBackgroundRegardlessOfCurrentThread(VfsThreadingUtil.java:27)
at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.lambda$fireAfterEvents$5(PersistentFSImpl.java:1797)
at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.runSuppressing(PersistentFSImpl.java:1411)
at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.fireAfterEvents(PersistentFSImpl.java:1792)
at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.applyMultipleEvents(PersistentFSImpl.java:1763)
at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl.processEventsImpl(PersistentFSImpl.java:1717)
at com.intellij.openapi.vfs.newvfs.AsyncEventSupport.processEventsFromRefresh(AsyncEventSupport.java:219)
at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEventsInWriteAction(RefreshSessionImpl.kt:268)
at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.doFireEvents(RefreshSessionImpl.kt:329)
at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEventsInBackgroundWriteAction$lambda$0(RefreshSessionImpl.kt:313)
at com.intellij.openapi.progress.util.SuvorovProgress.withProgressTitle(SuvorovProgress.kt:86)
at com.intellij.openapi.application.impl.LockingProgressSupportImpl.withWriteActionProgress(LockingProgressSupportImpl.kt:12)
at com.intellij.openapi.progress.CoroutinesKt.withWriteActionTitle(coroutines.kt:705)
at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEventsInBackgroundWriteAction(RefreshSessionImpl.kt:312)
at com.intellij.openapi.vfs.newvfs.RefreshQueueImpl.doFireEvents(RefreshQueueImpl.kt:273)
at com.intellij.openapi.vfs.newvfs.RefreshQueueImpl.processEventsSuspending$lambda$0$0(RefreshQueueImpl.kt:221)
at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport$executeWriteActionOnBackgroundWithAtomicCheck$ref$1$1.invokeSuspend$lambda$1(PlatformReadWriteActionSupport.kt:157)
at com.intellij.platform.locking.impl.NestedLocksThreadingSupport$proceedWithSuspendWriteLockAcquisitionFromWriteIntent$2.invokeSuspend(NestedLocksThreadingSupport.kt:1046)
at com.intellij.platform.locking.impl.NestedLocksThreadingSupport$proceedWithSuspendWriteLockAcquisitionFromWriteIntent$2.invoke(NestedLocksThreadingSupport.kt)
at com.intellij.platform.locking.impl.NestedLocksThreadingSupport$proceedWithSuspendWriteLockAcquisitionFromWriteIntent$2.invoke(NestedLocksThreadingSupport.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:67)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.runWriteActionWithCheckInWriteIntent(NestedLocksThreadingSupport.kt:1782)
at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport$executeWriteActionOnBackgroundWithAtomicCheck$ref$1$1.invokeSuspend(PlatformReadWriteActionSupport.kt:150)
at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport$executeWriteActionOnBackgroundWithAtomicCheck$ref$1$1.invoke(PlatformReadWriteActionSupport.kt)
at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport$executeWriteActionOnBackgroundWithAtomicCheck$ref$1$1.invoke(PlatformReadWriteActionSupport.kt)
at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport$executeWriteActionWithPossibleRetry$2.invokeSuspend(PlatformReadWriteActionSupport.kt:236)
at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport$executeWriteActionWithPossibleRetry$2.invoke(PlatformReadWriteActionSupport.kt)
at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport$executeWriteActionWithPossibleRetry$2.invoke(PlatformReadWriteActionSupport.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:67)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43)
at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:286)
at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport.executeWriteActionWithPossibleRetry(PlatformReadWriteActionSupport.kt:232)
at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport.access$executeWriteActionWithPossibleRetry(PlatformReadWriteActionSupport.kt:45)
at com.intellij.openapi.application.rw.PlatformReadWriteActionSupport$executeWriteActionOnBackgroundWithAtomicCheck$ref$1.invokeSuspend(PlatformReadWriteActionSupport.kt:149)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:610)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:1188)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:775)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:762)
```
It seems that we shouldn't try to map such files (`.jar` internals) to `nio.Path`.
Contributor guide
Research direction
Start in HaskellProjectManager.kt around the VFS listener at line 121 and processConfigFile at line 144, where the stack trace shows the invalid jar path being converted to a NIO Path. Reproduce with IntelliJ IDEA and Haskeletor v2.0.0, then verify that jar internals no longer trigger this exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100