### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.ui Index: core extension/org/eclipse/jdt/internal/corext/fix/CodeStyleFix.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/fix/CodeStyleFix.java,v retrieving revision 1.31 diff -u -r1.31 CodeStyleFix.java --- core extension/org/eclipse/jdt/internal/corext/fix/CodeStyleFix.java 25 Apr 2006 15:19:54 -0000 1.31 +++ core extension/org/eclipse/jdt/internal/corext/fix/CodeStyleFix.java 12 May 2006 10:46:48 -0000 @@ -11,6 +11,8 @@ package org.eclipse.jdt.internal.corext.fix; import java.util.ArrayList; +import java.util.Hashtable; +import java.util.Iterator; import java.util.List; import org.eclipse.text.edits.TextEditGroup; @@ -451,6 +453,7 @@ compilationUnit.accept(codeStyleVisitor); } + Hashtable nonStaticAccessOps= new Hashtable(); if (changeNonStaticAccessToStatic || changeIndirectStaticAccessToDirect) { IProblem[] problems= compilationUnit.getProblems(); for (int i= 0; i < problems.length; i++) { @@ -460,11 +463,17 @@ if (isNonStaticAccess || isIndirectStaticAccess) { ToStaticAccessOperation[] nonStaticAccessInformation= createNonStaticAccessResolveOperations(compilationUnit, problem); if (nonStaticAccessInformation != null) { - operations.add(nonStaticAccessInformation[0]); + ToStaticAccessOperation op= nonStaticAccessInformation[0]; + nonStaticAccessOps.put(op.fQualifier, op); } } } } + for (Iterator iter= nonStaticAccessOps.values().iterator(); iter.hasNext();) { + ToStaticAccessOperation op= (ToStaticAccessOperation)iter.next(); + if (!nonStaticAccessOps.containsKey(op.fQualifier.getParent())) + operations.add(op); + } if (removeFieldQualifier || removeMethodQualifier) { ThisQualifierVisitor visitor= new ThisQualifierVisitor(removeFieldQualifier, removeMethodQualifier, compilationUnit, operations); @@ -498,6 +507,7 @@ } } + Hashtable nonStaticAccessOps= new Hashtable(); if (changeNonStaticAccessToStatic || changeIndirectStaticAccessToDirect) { for (int i= 0; i < problems.length; i++) { IProblemLocation problem= problems[i]; @@ -506,11 +516,17 @@ if (isNonStaticAccess || isIndirectStaticAccess) { ToStaticAccessOperation[] nonStaticAccessInformation= createNonStaticAccessResolveOperations(compilationUnit, problem); if (nonStaticAccessInformation != null) { - operations.add(nonStaticAccessInformation[0]); + ToStaticAccessOperation op= nonStaticAccessInformation[0]; + nonStaticAccessOps.put(op.fQualifier, op); } } } } + for (Iterator iter= nonStaticAccessOps.values().iterator(); iter.hasNext();) { + ToStaticAccessOperation op= (ToStaticAccessOperation)iter.next(); + if (!nonStaticAccessOps.containsKey(op.fQualifier.getParent())) + operations.add(op); + } if (operations.isEmpty()) return null;