From a4408fd41b8953e22ca985581198d0bd1ea9e4ae Mon Sep 17 00:00:00 2001 From: irengrig Date: Mon, 14 Nov 2016 11:11:12 +0100 Subject: [PATCH] catch process canceled exception of pattern match calculation - fix review comment for WEB-22649 JSON Schema: patternProperties does not work. --- .../jetbrains/jsonSchema/impl/JsonSchemaObject.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaObject.java b/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaObject.java index b5ef3b1e50b2..5b6b128783af 100644 --- a/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaObject.java +++ b/json/src/com/jetbrains/jsonSchema/impl/JsonSchemaObject.java @@ -1,5 +1,6 @@ package com.jetbrains.jsonSchema.impl; +import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.containers.SLRUMap; import org.jetbrains.annotations.NotNull; @@ -509,10 +510,14 @@ public class JsonSchemaObject { final List strings = new ArrayList<>(myPatternProperties.keySet()); Collections.sort(strings); for (final String pattern : strings) { - final boolean matches = Pattern.compile(adaptSchemaPattern(pattern)).matcher(StringUtil.newBombedCharSequence(name, 1000)).matches(); - if (matches) { - myCachedPatternProperties.put(name, pattern); - return myPatternProperties.get(pattern); + try { + final boolean matches = Pattern.compile(adaptSchemaPattern(pattern)).matcher(StringUtil.newBombedCharSequence(name, 1000)).matches(); + if (matches) { + myCachedPatternProperties.put(name, pattern); + return myPatternProperties.get(pattern); + } + } catch (ProcessCanceledException e) { + //ignored } } myCachedPatternProperties.put(name, "");