void (@Nullable PsiElement element, @NotNull Configuration configuration, @NotNull Matcher matcher) { final NodeIterator matchedNodes = SsrFilteringNodeIterator.create(element); if (!matcher.checkIfShouldAttemptToMatch(matchedNodes)) { return; } final MatchContext matchContext = matcher.getMatchContext(); final int nodeCount = matchContext.getPattern().getNodeCount(); try { matcher.processMatchesInElement(new CountingNodeIterator(nodeCount, matchedNodes)); } catch (StructuralSearchException e) { if (myProblemsReported.add(configuration.getName())) { // don't overwhelm the user with messages final String message = e.getMessage().replace(ScriptSupport.UUID, ""); NotificationGroupManager.getInstance() .getNotificationGroup(UIUtil.SSR_NOTIFICATION_GROUP_ID) .createNotification(SSRBundle.message("inspection.script.problem", message, configuration.getName()), NotificationType.ERROR) .setImportant(true) .notify(element != null ? element.getProject() : null); } } finally { matchedNodes.reset(); } }