Bug 258753 - Can't delete closed project
Summary: Can't delete closed project
Status: CLOSED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: PDT (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P1 normal (vote)
Target Milestone: ---   Edit
Assignee: PHP UI CLA
QA Contact:
URL:
Whiteboard:
Keywords: contributed
Depends on:
Blocks: 255171 256102
  Show dependency tree
 
Reported: 2008-12-14 09:15 EST by Silver Zachara CLA
Modified: 2020-05-14 11:08 EDT (History)
4 users (show)

See Also:
ganoro: iplog+


Attachments
patch (972 bytes, patch)
2009-01-22 23:07 EST, Toshihiro Izumi CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Silver Zachara CLA 2008-12-14 09:15:31 EST
Hi all,

when I close project and try to delete them, it doesn't work, the project is still in the PHP Explorer and in the log file is this exception:

!SESSION 2008-12-14 15:08:19.718 -----------------------------------------------
eclipse.buildId=M20081203-0800
java.version=1.6.0_07
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=sk_SK
Command-line arguments:  -os win32 -ws win32 -arch x86

!ENTRY org.eclipse.php.ui 4 4 2008-12-14 15:13:11.937
!MESSAGE Resource '/test' is not open.
!STACK 1
org.eclipse.core.internal.resources.ResourceException: Resource '/test' is not open.
	at org.eclipse.core.internal.resources.Project.checkAccessible(Project.java:116)
	at org.eclipse.core.internal.resources.Container.members(Container.java:181)
	at org.eclipse.core.internal.resources.Container.members(Container.java:164)
	at org.eclipse.php.internal.ui.explorer.PHPExplorerContentProvider.getChildren(PHPExplorerContentProvider.java:94)
	at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1352)
	at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:385)
	at org.eclipse.dltk.ui.viewsupport.ProblemTreeViewer.getFilteredChildren(ProblemTreeViewer.java:195)
	at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:602)
	at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2567)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1856)
	at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:711)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1863)
	at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:711)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1831)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1780)
	at org.eclipse.dltk.internal.ui.scriptview.ScriptExplorerPart$PackageExplorerProblemTreeViewer.internalRefresh(ScriptExplorerPart.java:264)
	at org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:1457)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1365)
	at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:397)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1328)
	at org.eclipse.dltk.internal.ui.scriptview.ScriptExplorerPart$PackageExplorerProblemTreeViewer.preservingSelection(ScriptExplorerPart.java:368)
	at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1455)
	at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:548)
	at org.eclipse.dltk.internal.ui.navigator.ScriptExplorerContentProvider$7.run(ScriptExplorerContentProvider.java:1117)
	at org.eclipse.dltk.internal.ui.navigator.ScriptExplorerContentProvider.runUpdates(ScriptExplorerContentProvider.java:180)
	at org.eclipse.dltk.internal.ui.navigator.ScriptExplorerContentProvider.runPendingUpdates(ScriptExplorerContentProvider.java:172)
	at org.eclipse.dltk.internal.ui.navigator.ScriptExplorerContentProvider$1.run(ScriptExplorerContentProvider.java:152)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3800)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3425)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
!SUBENTRY 1 org.eclipse.core.resources 4 372 2008-12-14 15:13:11.937
!MESSAGE Resource '/test' is not open.
Comment 1 Sylvia Tancheva CLA 2008-12-16 10:25:03 EST
Seems like a refreshment issue.
After close/open the view the project is no longer there.
Comment 2 Silver Zachara CLA 2008-12-16 10:44:24 EST
(In reply to comment #1)
> Seems like a refreshment issue.
> After close/open the view the project is no longer there.

As you write, some problem with refresh view.
Comment 3 Silver Zachara CLA 2008-12-20 12:49:28 EST
Now I have tried close and open the view and the project it's still there
Comment 4 Toshihiro Izumi CLA 2009-01-22 23:07:00 EST
Created attachment 123479 [details]
patch

Note that I'm not aware of side effect of this instant patch.

org.eclipse.jface.viewers.StructuredViewer has 'elementMap' for mapping between element-class (ScriptProject, Project, etc) and TreeItem widget.
When the project is closed, whole tree items will be updated and the closed-project will be changed to Project from ScriptProject (in case of ScriptExplorer). <- normal case
However, org.eclipse.php.internal.ui.explorer.PHPExplorerContentProvider.getChildren(Object) returns 'ScriptProject' whether it's opened or closed.
'Delete project' causes 'remove selected element from tree' and the selection is 'Project'. But StructuredViewer doesn't have matched item (it has ScriptProject item).
As a result, project deletion will succeed but TreeItem still remains as zombie.

Sorry for my poor explanation...
Comment 5 Roy Ganor CLA 2009-02-02 08:18:29 EST
Actually you were right, there is a nicer way to do it but your fix was ok too ;)

anyway I tag it as contributed to mention that you fixed it :)

thanks!

// aggregate php projects and non php projects (includes closed ones)
if (parentElement instanceof IScriptModel) {
   return StandardModelElementContentProvider.concatenate(
	getScriptProjects((IScriptModel) parentElement), 
	getNonPhpProjects((IScriptModel) parentElement));
}
...

Comment 6 Gadi Goldbarg CLA 2009-02-03 02:31:55 EST
Still reproducible.
1.The closed project should be removed from PHP Explorer as soon as Delete action was applpied. But the project is still visible in PHP Explorer => Bug.
2.After refreshment, using close->open PHP explorer view -> The deleted project was removed. It's OK

pdt-all-in-one
2.1.0M4
SDK-I200901300153

Kalin Yanev 
kalin.a@zend.com
Comment 7 Gadi Goldbarg CLA 2009-02-03 06:35:56 EST
Retested using N20090202 - Fixed.
I'm closing it.

Kalin Yanev 
kalin.a@zend.com
Comment 8 Gadi Goldbarg CLA 2009-02-03 06:36:34 EST
closing