diff --git a/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaServiceImpl.java b/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaServiceImpl.java index 37107c2329e9..aa53d5f2a0c6 100644 --- a/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaServiceImpl.java +++ b/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaServiceImpl.java @@ -1,4 +1,4 @@ -// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.jetbrains.jsonSchema.impl; import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer; @@ -37,6 +37,8 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; public class JsonSchemaServiceImpl implements JsonSchemaService { + private static final Logger LOG = Logger.getInstance(JsonSchemaServiceImpl.class); + @NotNull private final Project myProject; @NotNull private final MyState myState; @NotNull private final ClearableLazyValue> myBuiltInSchemaIds; @@ -489,13 +491,24 @@ public class JsonSchemaServiceImpl implements JsonSchemaService { } @NotNull - private static MultiMap createFileProviderMap(@NotNull final List list, - @NotNull Project project) { + private static MultiMap createFileProviderMap(@NotNull List list, + @NotNull Project project) { // if there are different providers with the same schema files, // stream API does not allow to collect same keys with Collectors.toMap(): throws duplicate key final MultiMap map = MultiMap.create(); for (JsonSchemaFileProvider provider : list) { - VirtualFile schemaFile = getSchemaForProvider(project, provider); + VirtualFile schemaFile; + try { + schemaFile = getSchemaForProvider(project, provider); + } + catch (ProcessCanceledException e) { + throw e; + } + catch (Exception e) { + LOG.error(e); + continue; + } + if (schemaFile != null) { map.putValue(schemaFile, provider); }