From 03acb49b5a617e4f44e733c7645c276cd4e01ced Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 5 Apr 2019 10:01:26 +0200 Subject: [PATCH] guard against DDOSing PsiElementFactory#createTypeByFQClassName with many expensive file scopes (IDEA-210047) `fileScope(LightVirtualFile)` can hold hard reference to PSI and AST, and the memory snapshot contains many of those --- .../src/com/intellij/psi/impl/PsiElementFactoryImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java index 704698726be8..7929db4c31cf 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiElementFactoryImpl.java @@ -35,7 +35,7 @@ import java.util.concurrent.ConcurrentMap; public class PsiElementFactoryImpl extends PsiJavaParserFacadeImpl implements PsiElementFactory { private final ConcurrentMap myArrayClasses = ContainerUtil.newConcurrentMap(); - private final ConcurrentMap myCachedObjectType = ContainerUtil.newConcurrentMap(); + private final ConcurrentMap myCachedObjectType = ContainerUtil.createConcurrentSoftMap(); public PsiElementFactoryImpl(final PsiManagerEx manager) { super(manager);