Bug 14421 Old .CLASS Files Are Not Deleted
When creating a project that does NOT use source folders (and does not use a bin directory for .class files) the .java and .class files are stored together in the Java package structure. When converting a project to use source folders (and the required bin directory for .class files), the old .class files stored in the Java package structure are NEVER DELETED by Eclipse. This is a bug for Eclipse 1.0 and 2.0. Since I use WSDD 4.0 (which is built on Eclipse 1.0), I've seen compilation errors due to the fact that the compiler/JDT is using old .class files rather than the new ones in the project's bin directory. I have not managed to reproduce the compile errors in build 20020416. But since the old .class files should have been deleted this is still a bug for the latest build.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/BuildPathsBlock.java
List newClassPath;
		if (classpathEntries == null) {
			newClassPath= getDefaultClassPath(jproject);
		} else {
			newClassPath= new ArrayList();
			for (int i= 0; i < classpathEntries.length; i++) {
				IClasspathEntry curr= classpathEntries[i];
				int entryKind= curr.getEntryKind();
				IPath path= curr.getPath();
				boolean isExported= curr.isExported();
				
				IResource res= null;
				boolean isMissing= false;
				
				if (entryKind != IClasspathEntry.CPE_VARIABLE) {
					res= fWorkspaceRoot.findMember(path);
					if (res == null) {
						isMissing= (entryKind != IClasspathEntry.CPE_LIBRARY || !path.toFile().isFile());
					}
				} else {
					IPath resolvedPath= JavaCore.getResolvedVariablePath(path);
					isMissing= (resolvedPath == null) || !resolvedPath.toFile().isFile();
				}												
				CPListElement elem= new CPListElement(entryKind, path, res, curr.getSourceAttachmentPath(), curr.getSourceAttachmentRootPath(), isExported);
				if (projExists) {
					elem.setIsMissing(isMissing);
				}
				newClassPath.add(elem);
			}
		}