Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Keller2012-12-19 15:10:44 +0000
committerMarkus Keller2012-12-19 15:10:44 +0000
commita0d2d3a64f310e7775834de993b511bac2dd2a99 (patch)
treef58a12c9f33e11df77cb89b5eda0e88dde479db7
parent57e850fc8c6f3a63cfd41fb5d6441fcc0eec4ea4 (diff)
downloadeclipse.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.java19
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);
}

Back to the top