diff --git a/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaServiceImpl.java b/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaServiceImpl.java index af153fb7f8fd..97fdd001c4d6 100644 --- a/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaServiceImpl.java +++ b/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaServiceImpl.java @@ -1,6 +1,6 @@ +// Copyright 2000-2017 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.json.JsonLanguage; import com.intellij.json.psi.JsonFile; import com.intellij.json.psi.JsonObject; @@ -8,6 +8,7 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.application.ReadAction; import com.intellij.openapi.application.WriteAction; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.fileTypes.LanguageFileType; import com.intellij.openapi.fileTypes.ex.FileTypeManagerEx; @@ -36,7 +37,6 @@ import org.jetbrains.annotations.Nullable; import java.io.File; import java.util.*; import java.util.concurrent.atomic.AtomicLong; -import java.util.function.Function; import java.util.stream.Collectors; public class JsonSchemaServiceImpl implements JsonSchemaService { @@ -50,7 +50,7 @@ public class JsonSchemaServiceImpl implements JsonSchemaService { public JsonSchemaServiceImpl(@NotNull Project project) { myProject = project; - myState = new MyState(() -> getProvidersFromFactories(factory -> factory.getProviders(myProject))); + myState = new MyState(() -> getProvidersFromFactories()); myModificationTracker = () -> myModificationCount.get(); myAnySchemaChangeTracker = () -> myAnyChangeCount.get(); project.getMessageBus().connect().subscribe(JsonSchemaVfsListener.JSON_SCHEMA_CHANGED, myAnyChangeCount::incrementAndGet); @@ -62,12 +62,17 @@ public class JsonSchemaServiceImpl implements JsonSchemaService { return myAnySchemaChangeTracker; } - private List getProvidersFromFactories( - @NotNull final Function> function) { - return Arrays.stream(getProviderFactories()) - .map(function) - .flatMap(List::stream) - .collect(Collectors.toList()); + private List getProvidersFromFactories() { + List providers = new ArrayList<>(); + for (JsonSchemaProviderFactory factory : getProviderFactories()) { + try { + providers.addAll(factory.getProviders(myProject)); + } + catch (Exception e) { + Logger.getInstance(JsonSchemaService.class).error(e); + } + } + return providers; } @NotNull