### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java,v retrieving revision 1.17 diff -u -r1.17 ImportRewrite.java --- dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java 7 Mar 2009 01:08:09 -0000 1.17 +++ dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java 6 Jan 2010 14:16:01 -0000 @@ -12,7 +12,9 @@ package org.eclipse.jdt.core.dom.rewrite; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; @@ -122,6 +124,7 @@ private final boolean restoreExistingImports; private final List existingImports; + private final Map kindImports; private String[] importOrder; private int importOnDemandThreshold; @@ -232,6 +235,8 @@ this.importOrder= CharOperation.NO_STRINGS; this.importOnDemandThreshold= 99; this.staticImportOnDemandThreshold= 99; + + this.kindImports = new HashMap(); } @@ -345,7 +350,10 @@ int res= compareImport(prefix, qualifier, name, curr); if (res != ImportRewriteContext.RES_NAME_UNKNOWN) { if (!allowAmbiguity || res == ImportRewriteContext.RES_NAME_FOUND) { - return res; + if (prefix != 's' + || (this.kindImports.get(curr.substring(1)).equals(this.kindImports.get(qualifier + "." + name)))) { + return res; + } } } } @@ -839,6 +847,7 @@ context= this.defaultContext; } int kind= isField ? ImportRewriteContext.KIND_STATIC_FIELD : ImportRewriteContext.KIND_STATIC_METHOD; + this.kindImports.put(declaringTypeName + "." + simpleName, new Integer(kind)); int res= context.findInContext(declaringTypeName, simpleName, kind); if (res == ImportRewriteContext.RES_NAME_CONFLICT) { return declaringTypeName + '.' + simpleName;