From 0cfa18f8a829b4296af55adc050dd207c8aed99c Mon Sep 17 00:00:00 2001 From: Maxim Medvedev Date: Fri, 23 Sep 2011 15:56:12 +0400 Subject: [PATCH] IDEA-74565 Groovy: SpinAllocator$AllocatorExhaustedException at GroovyPsiElementFactoryImpl.createMethod() after invoking "Generate Getter and Setter" action several times --- .../psi/impl/GroovyPsiElementFactoryImpl.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyPsiElementFactoryImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyPsiElementFactoryImpl.java index ae643b7d546d..78d2a2b96c01 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyPsiElementFactoryImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyPsiElementFactoryImpl.java @@ -760,14 +760,19 @@ public class GroovyPsiElementFactoryImpl extends GroovyPsiElementFactory { @Override public GrMethod createMethod(@NotNull @NonNls String name, @Nullable PsiType returnType) throws IncorrectOperationException { StringBuilder builder = StringBuilderSpinAllocator.alloc(); - if (returnType != null) { - builder.append(returnType.getCanonicalText()); + try { + if (returnType != null) { + builder.append(returnType.getCanonicalText()); + } + else { + builder.append("def"); + } + builder.append(' ').append(name).append("(){}"); + return createMethodFromText(builder.toString()); } - else { - builder.append("def"); + finally { + StringBuilderSpinAllocator.dispose(builder); } - builder.append(' ').append(name).append("(){}"); - return createMethodFromText(builder.toString()); } @NotNull