diff options
| author | Markus Keller | 2012-12-19 15:10:44 +0000 |
|---|---|---|
| committer | Markus Keller | 2012-12-19 15:10:44 +0000 |
| commit | a0d2d3a64f310e7775834de993b511bac2dd2a99 (patch) | |
| tree | f58a12c9f33e11df77cb89b5eda0e88dde479db7 | |
| parent | 57e850fc8c6f3a63cfd41fb5d6441fcc0eec4ea4 (diff) | |
| download | eclipse.jdt.ui-a0d2d3a64f310e7775834de993b511bac2dd2a99.tar.gz eclipse.jdt.ui-a0d2d3a64f310e7775834de993b511bac2dd2a99.tar.xz eclipse.jdt.ui-a0d2d3a64f310e7775834de993b511bac2dd2a99.zip | |
Bug 319054: Eclipse deletes all files when I cancel a project creation (symlink in project location path)v20121219-151044I20130101-0800I20121225-1600I20121225-0800
| -rw-r--r-- | org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageTwo.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageTwo.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageTwo.java index ddff49a220..8cee5b2f0b 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageTwo.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageTwo.java @@ -349,12 +349,29 @@ public class NewJavaProjectWizardPageTwo extends JavaCapabilityConfigurationPage } private void restoreExistingFolders(URI projectLocation) { + HashSet<IFileStore> foldersToKeep= new HashSet<IFileStore>(fOrginalFolders); + // workaround for bug 319054: Eclipse deletes all files when I cancel a project creation (symlink in project location path) + for (IFileStore originalFileStore : fOrginalFolders) { + try { + File localFile= originalFileStore.toLocalFile(EFS.NONE, null); + if (localFile != null) { + File canonicalFile= localFile.getCanonicalFile(); + IFileStore canonicalFileStore= originalFileStore.getFileSystem().fromLocalFile(canonicalFile); + if (! originalFileStore.equals(canonicalFileStore)) { + foldersToKeep.add(canonicalFileStore); + } + } + } catch (IOException e) { + } catch (CoreException e) { + } + } + try { IFileStore[] children= EFS.getStore(projectLocation).childStores(EFS.NONE, null); for (int i= 0; i < children.length; i++) { IFileStore child= children[i]; IFileInfo info= child.fetchInfo(); - if (info.isDirectory() && info.exists() && !fOrginalFolders.contains(child)) { + if (info.isDirectory() && info.exists() && !foldersToKeep.contains(child)) { child.delete(EFS.NONE, null); fOrginalFolders.remove(child); } |
