diff options
author | dgiormov | 2012-02-01 11:04:06 +0000 |
---|---|---|
committer | dgiormov | 2012-02-01 11:04:06 +0000 |
commit | 9dd3a2104b785f2dfc826b5fcb67a0cefb4c2e60 (patch) | |
tree | dc4d061f1b4c414f59dce3629333c09a3496c65f | |
parent | 3e4613df5501ad014c7482d21445ded9b9c122e8 (diff) | |
download | webtools.javaee-9dd3a2104b785f2dfc826b5fcb67a0cefb4c2e60.tar.gz webtools.javaee-9dd3a2104b785f2dfc826b5fcb67a0cefb4c2e60.tar.xz webtools.javaee-9dd3a2104b785f2dfc826b5fcb67a0cefb4c2e60.zip |
[369259] error dialog pops up when deleting dynamic web project
-rw-r--r-- | plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/LoadingJeeDDJob.java | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/LoadingJeeDDJob.java b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/LoadingJeeDDJob.java index 1efce1b08..c9f33c1c7 100644 --- a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/LoadingJeeDDJob.java +++ b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/LoadingJeeDDJob.java @@ -1,5 +1,5 @@ /*********************************************************************** - * Copyright (c) 2011 by SAP AG, Walldorf. + * Copyright (c) 2011 by SAP AG, Walldorf. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -24,11 +24,11 @@ import org.eclipse.jface.viewers.Viewer; import org.eclipse.jst.j2ee.navigator.internal.LoadingDDUIJob; public class LoadingJeeDDJob extends Job { - - private Viewer viewer; - private JEE5ContentProvider rootProvider; - private IProject project; - private LoadingGroupProvider provider; + + private final Viewer viewer; + private final JEE5ContentProvider rootProvider; + private final IProject project; + private final LoadingGroupProvider provider; public LoadingJeeDDJob(Viewer viewer2, LoadingGroupProvider provider, IProject project, JEE5ContentProvider rootProvider) { super(provider.getText()); @@ -45,20 +45,26 @@ public class LoadingJeeDDJob extends Job { List children = new ArrayList(); AbstractGroupProvider rootObject = null; - + try { rootObject = (rootProvider != null) ? rootProvider.getNewContentProviderInstance(project) : null; rootProvider.registerProvider(project, rootObject); if (rootObject != null) { children.add(rootObject); - } - } finally { + } + } catch (IllegalStateException e) { + if (!project.isAccessible()){ + //Project is most likely closed or deleted at this time. + return Status.CANCEL_STATUS; + } + throw e; + } finally { /* dispose of the place holder, causes the termination of the animation job */ - provider.dispose(); + provider.dispose(); new ClearJeePlaceHolderJob((AbstractTreeViewer) viewer, provider, project, children.toArray()).schedule(); } - - + + return Status.OK_STATUS; } |