From dcb67162c10c43343531d8ec855bee1df732bd31 Mon Sep 17 00:00:00 2001 From: "Konstantin.Nisht" Date: Mon, 23 Dec 2024 16:24:37 +0100 Subject: [PATCH] [ijent] Forbid double wraps of `IjentWslNioPath` GitOrigin-RevId: 2eff208a07b270deec6069f7b9836598f3469bd2 --- .../execution/wsl/ijent/nio/IjentWslNioFileSystemProvider.kt | 2 +- .../com/intellij/execution/wsl/ijent/nio/IjentWslNioPath.kt | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioFileSystemProvider.kt b/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioFileSystemProvider.kt index b0ae24d3b329..196f715b7083 100644 --- a/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioFileSystemProvider.kt +++ b/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioFileSystemProvider.kt @@ -190,7 +190,7 @@ class IjentWslNioFileSystemProvider( ) else null - return IjentWslNioPath(getFileSystem(wslId), originalPath, dosAttributes) + return IjentWslNioPath(getFileSystem(wslId), originalPath.toOriginalPath(), dosAttributes) } override fun remove() { diff --git a/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioPath.kt b/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioPath.kt index 2f9efa3ceaaf..f430fcd23d8d 100644 --- a/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioPath.kt +++ b/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/IjentWslNioPath.kt @@ -10,6 +10,10 @@ class IjentWslNioPath( val delegate: Path, cachedAttributes: IjentNioPosixFileAttributesWithDosAdapter?, ) : Path, BasicFileAttributesHolder2.Impl(cachedAttributes) { + init { + require(delegate !is IjentWslNioPath) { "IjentWslNioPath should be a wrapper over other instances of path, namely WindowsPath or IjentNioPath" } + } + override fun getFileSystem(): IjentWslNioFileSystem = fileSystem override fun isAbsolute(): Boolean = delegate.isAbsolute