From f8cb1f032cbe066d3b300cd96fc01364701386b3 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Thu, 12 May 2016 12:12:28 +0200 Subject: [PATCH] batch inspections: synchronized access to mySubClasses field so trove doesn't loop forever (IDEA-155813) --- .../reference/RefManagerImpl.java | 31 ++++++++----------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/platform/analysis-impl/src/com/intellij/codeInspection/reference/RefManagerImpl.java b/platform/analysis-impl/src/com/intellij/codeInspection/reference/RefManagerImpl.java index 9680fa00e4ef..974f89c288c9 100644 --- a/platform/analysis-impl/src/com/intellij/codeInspection/reference/RefManagerImpl.java +++ b/platform/analysis-impl/src/com/intellij/codeInspection/reference/RefManagerImpl.java @@ -357,14 +357,11 @@ public class RefManagerImpl extends RefManager { synchronized (myRefTable) { answer = new ArrayList(myRefTable.values()); } - ContainerUtil.quickSort(answer, new Comparator() { - @Override - public int compare(RefElement o1, RefElement o2) { - VirtualFile v1 = ((RefElementImpl)o1).getVirtualFile(); - VirtualFile v2 = ((RefElementImpl)o2).getVirtualFile(); + ContainerUtil.quickSort(answer, (o1, o2) -> { + VirtualFile v1 = ((RefElementImpl)o1).getVirtualFile(); + VirtualFile v2 = ((RefElementImpl)o2).getVirtualFile(); - return (v1 != null ? v1.hashCode() : 0) - (v2 != null ? v2.hashCode() : 0); - } + return (v1 != null ? v1.hashCode() : 0) - (v2 != null ? v2.hashCode() : 0); }); return answer; @@ -495,15 +492,12 @@ public class RefManagerImpl extends RefManager { }); } }, - new Consumer() { - @Override - public void consume(RefElementImpl element) { - element.initialize(); - for (RefManagerExtension each : myExtensions.values()) { - each.onEntityInitialized(element, elem); - } - fireNodeInitialized(element); + element -> { + element.initialize(); + for (RefManagerExtension each : myExtensions.values()) { + each.onEntityInitialized(element, elem); } + fireNodeInitialized(element); }); } @@ -565,9 +559,10 @@ public class RefManagerImpl extends RefManager { if (result == null) return null; myRefTable.put(psiAnchor, result); - } - if (whenCached != null) { - whenCached.consume(result); + + if (whenCached != null) { + whenCached.consume(result); + } } return result;