--- refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParametersPlugin.java +++ refactoring.java/src/org/netbeans/modules/refactoring/java/plugins/ChangeParametersPlugin.java @@ -46,6 +46,7 @@ import com.sun.source.tree.VariableTree; import com.sun.source.util.TreeScanner; import java.io.IOException; +import java.nio.CharBuffer; import java.text.MessageFormat; import java.util.*; import javax.lang.model.element.*; @@ -126,8 +127,10 @@ }; if (scanner.scan(javac.getTrees().getTree(method), s)) { + if (!isParameterBeingRemoved(method, s, paramTable)) { p = createProblem(p, true, NbBundle.getMessage(ChangeParametersPlugin.class, "ERR_NameAlreadyUsed", s)); } + } // check parameter type @@ -150,6 +153,25 @@ return p; } + private boolean isParameterBeingRemoved(ExecutableElement method, String s, ParameterInfo[] paramTable) { + boolean beingRemoved = false; + for (int j = 0; j < method.getParameters().size(); j++) { + VariableElement variable = method.getParameters().get(j); + if (variable.getSimpleName().contentEquals(s)) { + + boolean isInNewList = false; + for (ParameterInfo parameterInfo : paramTable) { + if (parameterInfo.getOriginalIndex() == j) { + isInNewList = true; + } + } + beingRemoved = !isInNewList; + break; + } + } + return beingRemoved; + } + private static String newParMessage(String par) { return new MessageFormat( getString("ERR_newpar")).format(new Object[] { getString(par) } // NOI18N