diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java b/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java
index 45fd55ff4ac0..fbeb184239ec 100644
--- a/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java
+++ b/java/java-impl/src/com/intellij/refactoring/extractMethod/ExtractMethodProcessor.java
@@ -1140,7 +1140,8 @@ public class ExtractMethodProcessor implements MatchProvider {
}
}
PsiDeclarationStatement statement = myElementFactory.createVariableDeclarationStatement(name, type, myMethodCall);
- statement = (PsiDeclarationStatement)addToMethodCallLocation(statement);
+ statement =
+ (PsiDeclarationStatement)JavaCodeStyleManager.getInstance(myProject).shortenClassReferences(addToMethodCallLocation(statement));
PsiVariable var = (PsiVariable)statement.getDeclaredElements()[0];
myMethodCall = (PsiMethodCallExpression)var.getInitializer();
if (myOutputVariable != null) {
diff --git a/java/java-tests/testData/refactoring/extractMethod/ShortenClassRefsInNewReturnType.java b/java/java-tests/testData/refactoring/extractMethod/ShortenClassRefsInNewReturnType.java
new file mode 100644
index 000000000000..80fc8ee5008d
--- /dev/null
+++ b/java/java-tests/testData/refactoring/extractMethod/ShortenClassRefsInNewReturnType.java
@@ -0,0 +1,8 @@
+import java.util.ArrayList;
+
+class Test {
+ Object foo() {
+ Object list = new ArrayList();
+ return list;
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/refactoring/extractMethod/ShortenClassRefsInNewReturnType_after.java b/java/java-tests/testData/refactoring/extractMethod/ShortenClassRefsInNewReturnType_after.java
new file mode 100644
index 000000000000..9dd120ab2db4
--- /dev/null
+++ b/java/java-tests/testData/refactoring/extractMethod/ShortenClassRefsInNewReturnType_after.java
@@ -0,0 +1,16 @@
+import org.jetbrains.annotations.NotNull;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+class Test {
+ Object foo() {
+ Object list = newMethod();
+ return list;
+ }
+
+ @NotNull
+ private Collection newMethod() {
+ return new ArrayList();
+ }
+}
\ No newline at end of file
diff --git a/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java b/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java
index 35946793c3a8..eb8a1492e366 100644
--- a/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java
+++ b/java/java-tests/testSrc/com/intellij/refactoring/ExtractMethodTest.java
@@ -744,6 +744,10 @@ public class ExtractMethodTest extends LightCodeInsightTestCase {
doTestReturnTypeChanged(PsiType.INT);
}
+ public void testShortenClassRefsInNewReturnType() throws Exception {
+ doTestReturnTypeChanged(PsiType.getTypeByName(CommonClassNames.JAVA_UTIL_COLLECTION, getProject(), GlobalSearchScope.allScope(getProject())));
+ }
+
public void testPassFieldAsParameterAndMakeStatic() throws Exception {
doTestPassFieldsAsParams();
}