From 87f96afaeb6af4d7bd87e6edc551d00d66e3af4d Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 5 Jul 2013 11:56:58 +0200 Subject: [PATCH] EA-47376 - SIOOBE: JavaChangeSignatureDetector.extractSignature try to avoid import list modifications during signature string computation --- .../changeSignature/JavaChangeSignatureDetector.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureDetector.java b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureDetector.java index 6faaf8e509e8..eba4ae956627 100644 --- a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureDetector.java +++ b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureDetector.java @@ -111,8 +111,9 @@ public class JavaChangeSignatureDetector implements LanguageChangeSignatureDetec public String extractSignature(PsiElement element, @NotNull ChangeInfo initialChangeInfo) { final PsiMethod method = PsiTreeUtil.getParentOfType(element, PsiMethod.class, false); if (method != null && isInsideMethodSignature(element, method) && method == initialChangeInfo.getMethod()) { - final TextRange signatureRange = getSignatureRange(method); - return element.getContainingFile().getText().substring(signatureRange.getStartOffset(), signatureRange.getEndOffset()); + final PsiCodeBlock body = method.getBody(); + final TextRange signatureRange = new TextRange(0, body != null ? body.getStartOffsetInParent() : method.getTextLength()); + return signatureRange.substring(method.getText()); } else if (element instanceof PsiIdentifier && element.getParent() instanceof PsiNamedElement) { return element.getText(); }