Index: model/org/eclipse/jdt/internal/core/builder/NameEnvironment.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/NameEnvironment.java,v retrieving revision 1.58 diff -u -r1.58 NameEnvironment.java --- model/org/eclipse/jdt/internal/core/builder/NameEnvironment.java 27 Apr 2007 15:51:39 -0000 1.58 +++ model/org/eclipse/jdt/internal/core/builder/NameEnvironment.java 4 May 2007 17:30:55 -0000 @@ -109,7 +109,7 @@ } else { outputFolder = root.getFolder(outputPath); if (!outputFolder.exists()) - createFolder(outputFolder); + createOutputFolder(outputFolder); } sLocations.add( ClasspathLocation.forSourceFolder((IContainer) target, outputFolder, entry.fullInclusionPatternChars(), entry.fullExclusionPatternChars())); @@ -246,10 +246,15 @@ binaryLocations[i].cleanup(); } -private void createFolder(IContainer folder) throws CoreException { - if (!folder.exists()) { - createFolder(folder.getParent()); - ((IFolder) folder).create(true, true, null); +private void createOutputFolder(IContainer outputFolder) throws CoreException { + createParentFolder(outputFolder.getParent()); + ((IFolder) outputFolder).create(IResource.FORCE | IResource.DERIVED, true, null); +} + +private void createParentFolder(IContainer parent) throws CoreException { + if (!parent.exists()) { + createParentFolder(parent.getParent()); + ((IFolder) parent).create(true, true, null); } }