- 83319: search: method references in static imports
- 83393: varargs in javadoc references
diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg03_out.java b/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg03_out.java
index 1ba1e0d..8278a0a 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg03_out.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg03_out.java
@@ -2,9 +2,9 @@
 
 class A {
 	/**
-	 * @see #use(String)
+	 * @see #use(Object[])
 	 * @see #use(Object[])
 	 * @see #use(Object...)
 	 */
-	public void use(String... args) { }
+	public void use(Object... args) { }
 }
\ No newline at end of file
diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg08_out.java b/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg08_out.java
index 723a595..ec693d4 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg08_out.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg08_out.java
@@ -2,7 +2,7 @@
 
 class A {
 	/**
-	 * This is {@link #m(String[])}.
+	 * This is {@link #m(String...)}.
 	 * @param args TODO
 	 */
 	public void m(String... args) {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg09_out.java b/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg09_out.java
index 96c584e..f609386 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg09_out.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg09_out.java
@@ -2,7 +2,7 @@
 
 class A {
 	/**
-	 * This is {@link #m(String[])}.
+	 * This is {@link #m(String...)}.
 	 * @param args TODO
 	 */
 	public void m(String... args) {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg10_out.java b/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg10_out.java
index aaea895..1fdabbe 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg10_out.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/resources/ChangeSignature/canModify/A_testVararg10_out.java
@@ -2,7 +2,7 @@
 
 class A {
 	/**
-	 * This is {@link #m(String[])}.
+	 * This is {@link #m(String...)}.
 	 * @param args TODO
 	 */
 	public void m(String... args) {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeSignatureTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeSignatureTests.java
index fbfff91..dc6dbad 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeSignatureTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeSignatureTests.java
@@ -44,8 +44,6 @@
 	
 	private static final boolean BUG_79976_CORE_GENERIC_RippleMethodFinder= true;
 	private static final boolean BUG_83691_CORE_JAVADOC_REF= true;
-	private static final boolean BUG_83319_CORE_REFS_IN_STATIC_IMPORT= true;
-	private static final boolean BUG_83393_CORE_VARARG_JAVADOC_REFERENCE= true;
 	
 	private static final boolean RUN_CONSTRUCTOR_TEST= true;
 
@@ -1734,10 +1732,6 @@
 	}
 	
 	public void testStaticImport01() throws Exception {
-		if (BUG_83319_CORE_REFS_IN_STATIC_IMPORT) {
-			printTestDisabledMessage("BUG_83319_CORE_REFS_IN_STATIC_IMPORT");
-			return;
-		}
 		helperRenameMethod(new String[0], "abc");
 	}
 	
@@ -1786,10 +1780,6 @@
 	}
 	
 	public void testVararg03() throws Exception {
-		if (BUG_83393_CORE_VARARG_JAVADOC_REFERENCE) {
-			printTestDisabledMessage("BUG_83393_CORE_VARARG_JAVADOC_REFERENCE");
-			return;
-		}
 		String[] signature= {"[QString;"};
 		String[] newNames= {};
 		String[] newTypes= {};
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/ChangeSignatureRefactoring.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/ChangeSignatureRefactoring.java
index 694547f..d9fbb4c 100644
--- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/ChangeSignatureRefactoring.java
+++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/structure/ChangeSignatureRefactoring.java
@@ -2015,6 +2015,7 @@
 					newP.setName(getASTRewrite().getAST().newSimpleName(info.getNewName()));
 			
 			newP.setType(createNewDocRefType(info));
+			newP.setVarargs(info.isNewVarargs());
 			return newP;
 		}
 
@@ -2023,10 +2024,7 @@
 			ITypeBinding newTypeBinding= info.getNewTypeBinding();
 			if (newTypeBinding != null)
 				newTypeBinding= newTypeBinding.getErasure(); //see bug 83127: Javadoc references are raw (erasures)
-			Type typeNode= createNewTypeNode(newTypeName, newTypeBinding);
-			if (info.isNewVarargs())
-				typeNode= getASTRewrite().getAST().newArrayType(typeNode); // see bug 83393: Javadoc refs to varargs
-			return typeNode;
+			return createNewTypeNode(newTypeName, newTypeBinding);
 		}
 
 		protected SimpleName getMethodNameNode() {
@@ -2061,6 +2059,19 @@
 			MethodRefParameter oldParam= (MethodRefParameter) ((MethodRef) fNode).parameters().get(info.getOldIndex());
 			Type oldTypeNode= oldParam.getType();
 			Type newTypeNode= createNewDocRefType(info);
+			if (info.isNewVarargs()) {
+				if (info.isOldVarargs() && ! oldParam.isVarargs()) {
+					// leave as array reference of old reference was not vararg
+					newTypeNode= getASTRewrite().getAST().newArrayType(newTypeNode);
+				} else {
+					getASTRewrite().set(oldParam, MethodRefParameter.VARARGS_PROPERTY, Boolean.TRUE, fDescription);
+				}
+			} else {
+				if (oldParam.isVarargs()) {
+					getASTRewrite().set(oldParam, MethodRefParameter.VARARGS_PROPERTY, Boolean.FALSE, fDescription);
+				}
+			}
+			
 			getASTRewrite().replace(oldTypeNode, newTypeNode, fDescription);
 			getImportRemover().registerRemovedNode(oldTypeNode);
 		}