void (boolean showWarning) { final MultiMap<String, UserDefinedJsonSchemaConfiguration.Item> patternsMap = new MultiMap<>(); final StringBuilder sb = new StringBuilder(); final List<UserDefinedJsonSchemaConfiguration> list; try { list = getUiList(false); } catch (ConfigurationException e) { // will not happen return; } for (UserDefinedJsonSchemaConfiguration info : list) { info.refreshPatterns(); final JsonSchemaPatternComparator comparator = new JsonSchemaPatternComparator(myProject); final List<UserDefinedJsonSchemaConfiguration.Item> patterns = info.getPatterns(); for (UserDefinedJsonSchemaConfiguration.Item pattern : patterns) { for (Map.Entry<String, Collection<UserDefinedJsonSchemaConfiguration.Item>> entry : patternsMap.entrySet()) { for (UserDefinedJsonSchemaConfiguration.Item item : entry.getValue()) { final ThreeState similar = comparator.isSimilar(pattern, item); if (ThreeState.NO.equals(similar)) continue; if (sb.length() > 0) sb.append('\n'); sb.append(JsonBundle.message("schema.configuration.error.conflicting.mappings.desc", pattern.getPresentation(), info.getName(), item.getPresentation(), entry.getKey())); } } } patternsMap.put(info.getName(), patterns); } if (sb.length() > 0) { myError = JsonBundle.message("schema.configuration.error.conflicting.mappings.title", sb.toString()); } else { myError = null; } final Enumeration children = myRoot.children(); while (children.hasMoreElements()) { Object o = children.nextElement(); if (o instanceof MyNode && ((MyNode)o).getConfigurable() instanceof JsonSchemaConfigurable) { ((JsonSchemaConfigurable) ((MyNode)o).getConfigurable()).setError(myError, showWarning); } } }