From 33f29fde86b7fb31233d485f05245fce7e4a75de Mon Sep 17 00:00:00 2001 From: Nikita Kudrin Date: Wed, 5 Feb 2025 13:12:07 +0200 Subject: [PATCH] [starter eel] AT-1851 Do not throw on attempt to deregister unknown eel GitOrigin-RevId: ec9849e6935bec339b0afd7565448a20de248f28 --- .../com/intellij/execution/ijent/nio/IjentNioFsRegistry.kt | 5 ++++- .../execution/wsl/ijent/nio/toggle/IjentNioFsStrategy.kt | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/execution/ijent/nio/IjentNioFsRegistry.kt b/platform/platform-impl/src/com/intellij/execution/ijent/nio/IjentNioFsRegistry.kt index dfa23ae1dcc8..445df18cd566 100644 --- a/platform/platform-impl/src/com/intellij/execution/ijent/nio/IjentNioFsRegistry.kt +++ b/platform/platform-impl/src/com/intellij/execution/ijent/nio/IjentNioFsRegistry.kt @@ -1,6 +1,8 @@ // Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.execution.ijent.nio +import com.intellij.openapi.diagnostic.currentClassLogger +import com.intellij.openapi.diagnostic.getOrLogException import com.intellij.platform.eel.provider.EelNioBridgeService import com.intellij.platform.eel.provider.LocalEelDescriptor import com.intellij.platform.ijent.IjentApi @@ -55,7 +57,8 @@ fun CoroutineScope.registerIjentNioFs(ijent: IjentApi, root: String, internalNam } this.awaitCancellationAndInvoke { - service.deregister(ijent.descriptor) + runCatching { service.deregister(ijent.descriptor) } + .getOrLogException { currentClassLogger().warn("Unable to deregister eel descriptor ${ijent.descriptor}", it) } } // Compute a path after registration diff --git a/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/toggle/IjentNioFsStrategy.kt b/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/toggle/IjentNioFsStrategy.kt index 211f0ac3f8a6..387443ad092c 100644 --- a/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/toggle/IjentNioFsStrategy.kt +++ b/platform/platform-impl/src/com/intellij/execution/wsl/ijent/nio/toggle/IjentNioFsStrategy.kt @@ -6,7 +6,9 @@ import com.intellij.execution.wsl.WslDistributionManager import com.intellij.execution.wsl.WslIjentManager import com.intellij.execution.wsl.ijent.nio.IjentWslNioFileSystem import com.intellij.execution.wsl.ijent.nio.IjentWslNioFileSystemProvider +import com.intellij.openapi.diagnostic.currentClassLogger import com.intellij.openapi.diagnostic.debug +import com.intellij.openapi.diagnostic.getOrLogException import com.intellij.openapi.diagnostic.logger import com.intellij.platform.eel.provider.EelNioBridgeService import com.intellij.platform.ijent.community.impl.IjentFailSafeFileSystemPosixApi @@ -119,7 +121,9 @@ class IjentWslNioFsToggleStrategy( enabledInDistros.forEachGuaranteed { distro -> val descriptor = WslEelDescriptor(distro) val service = EelNioBridgeService.getInstanceSync() - service.deregister(descriptor) + runCatching { + service.deregister(descriptor) + }.getOrLogException { currentClassLogger().warn("Unable to deregister eel descriptor $descriptor", it) } } } }