diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/in/a/A.java b/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/in/a/A.java new file mode 100644 index 0000000..3099006 --- /dev/null +++ b/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/in/a/A.java @@ -0,0 +1,5 @@ +package a; + +public class A { + public static void foo() { } +} diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/in/a/B.java b/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/in/a/B.java new file mode 100644 index 0000000..ccea44a --- /dev/null +++ b/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/in/a/B.java @@ -0,0 +1,6 @@ +package a; + +public class B { + public static void foo(String s) { } + +} diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/in/b/C.java b/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/in/b/C.java new file mode 100644 index 0000000..aabdf68 --- /dev/null +++ b/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/in/b/C.java @@ -0,0 +1,9 @@ +package b; +import static a.A.foo; +import static a.B.foo; +public class C { + public void test() { + foo(); + foo("hello"); + } +} \ No newline at end of file diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/out/b/C.java b/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/out/b/C.java new file mode 100644 index 0000000..fddeb3c --- /dev/null +++ b/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/out/b/C.java @@ -0,0 +1,9 @@ +package b; +import static x.A.foo; +import static x.B.foo; +public class C { + public void test() { + foo(); + foo("hello"); + } +} \ No newline at end of file diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/out/x/A.java b/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/out/x/A.java new file mode 100644 index 0000000..60a0294 --- /dev/null +++ b/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/out/x/A.java @@ -0,0 +1,5 @@ +package x; + +public class A { + public static void foo() { } +} diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/out/x/B.java b/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/out/x/B.java new file mode 100644 index 0000000..b83b40b --- /dev/null +++ b/org.eclipse.jdt.ui.tests.refactoring/resources/RenamePackage/testImportStaticMethod/out/x/B.java @@ -0,0 +1,6 @@ +package x; + +public class B { + public static void foo(String s) { } + +} diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePackageTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePackageTests.java index f26417c..5c841fd 100644 --- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePackageTests.java +++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePackageTests.java @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Samrat Dhillon samrat.dhillon@gmail.com [rename] "Rename package" refactoring drops 2nd static import of method with same name but different signature https://bugs.eclipse.org/bugs/show_bug.cgi?id=420510 *******************************************************************************/ package org.eclipse.jdt.ui.tests.refactoring; @@ -1437,6 +1438,10 @@ public void testStatic1() throws Exception { helper2(new String[]{"s1.j.l", "s1"}, new String[][]{{"S"},{"B"}}, "s1.java.lang"); } + + public void testImportStaticMethod() throws Exception{ + helper2(new String[]{"a", "b"}, new String[][]{{"A","B"},{"C"}}, "x"); + } public void testStaticMultiRoots1() throws Exception { helperProjectsPrgTest( diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/RenamePackageProcessor.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/RenamePackageProcessor.java index 85c65e9..7c0c244 100644 --- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/RenamePackageProcessor.java +++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/RenamePackageProcessor.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2011 IBM Corporation and others. + * Copyright (c) 2000, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Samrat Dhillon samrat.dhillon@gmail.com [rename] "Rename package" refactoring drops 2nd static import of method with same name but different signature https://bugs.eclipse.org/bugs/show_bug.cgi?id=420510 *******************************************************************************/ package org.eclipse.jdt.internal.corext.refactoring.rename; @@ -1081,7 +1082,7 @@ } for (Iterator iterator= importChange.fStaticToAdd.iterator(); iterator.hasNext();) { String[] toAdd= iterator.next(); - importRewrite.addStaticImport(toAdd[0], toAdd[1], true); + importRewrite.addStaticImport(toAdd[0], toAdd[1], false); } for (Iterator iterator= importChange.fToAdd.iterator(); iterator.hasNext();) { importRewrite.addImport(iterator.next());