ForNeVeR / ForNeVeR/haskeletor

UnsupportedOperationException: Failed to map <path> into nio Path

Open Beginner friendly
#88 0 comments 0 reactions 0 assignees View on GitHub
bug good first issue help wanted
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.