From 1abb55bf8ab9fa0975ae159e7ec6eabf379eb863 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Tue, 23 May 2023 22:43:07 +0300 Subject: [PATCH] use Dispatchers.IO only for IO GitOrigin-RevId: 5eb805296719e456a4b1d306532950b3146b3410 --- .../src/com/intellij/ide/ui/IconMapLoader.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/ui/IconMapLoader.kt b/platform/platform-impl/src/com/intellij/ide/ui/IconMapLoader.kt index 15f2a3f4fd9b..cf5ed8ae9dd6 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/IconMapLoader.kt +++ b/platform/platform-impl/src/com/intellij/ide/ui/IconMapLoader.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. @file:Suppress("ReplacePutWithAssignment") package com.intellij.ide.ui @@ -33,10 +33,10 @@ class IconMapLoader { val channel = Channel>>(Runtime.getRuntime().availableProcessors()) launch { for (extension in IconMapperBean.EP_NAME.filterableLazySequence()) { - launch(Dispatchers.IO) t@{ + launch t@{ val classLoader = extension.pluginDescriptor.pluginClassLoader ?: return@t val mappingFile = extension.instance?.mappingFile ?: return@t - val data = ResourceUtil.getResourceAsBytes(mappingFile, classLoader) + val data = withContext(Dispatchers.IO) { ResourceUtil.getResourceAsBytes (mappingFile, classLoader) } if (data == null) { logger().error(PluginException("Cannot find $mappingFile", extension.pluginDescriptor.pluginId)) } @@ -55,6 +55,9 @@ class IconMapLoader { val parser = JsonFactory().createParser(data) readDataFromJson(parser, map) } + catch (e: CancellationException) { + throw e + } catch (e: Exception) { logger().warn("Can't process ${extension.instance?.mappingFile}", PluginException(e, extension.pluginDescriptor.pluginId))