Community
Participate
Working Groups
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.
Seems like a refreshment issue. After close/open the view the project is no longer there.
(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.
Now I have tried close and open the view and the project it's still there
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...
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)); } ...
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
Retested using N20090202 - Fixed. I'm closing it. Kalin Yanev kalin.a@zend.com
closing