Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 369094

Summary: Opening/closing projects raises ResourceException in PhotranVPG#shouldProcessProject
Product: [Tools] PTP Reporter: Jeffrey Overbey <com-eclipse-dot-org>
Component: Photran.For Internal UseAssignee: Jeffrey Overbey <com-eclipse-dot-org>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 7.0   
Target Milestone: 7.0.5   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Jeffrey Overbey CLA 2012-01-19 10:10:32 EST
Opening or closing projects causes errors like the following in Eclipse 4.2M4:


org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.Error: org.eclipse.core.internal.resources.ResourceException: Resource '/org.eclipse.ptp.rdt.managedbuilder.xlc.ui' does not exist.)
	at org.eclipse.swt.SWT.error(SWT.java:4300)
	at org.eclipse.swt.SWT.error(SWT.java:4215)
	...
Caused by: java.lang.Error: org.eclipse.core.internal.resources.ResourceException: Resource '/org.eclipse.ptp.rdt.managedbuilder.xlc.ui' does not exist.
	at org.eclipse.photran.internal.core.vpg.PhotranVPG.shouldProcessProject(PhotranVPG.java:544)
	at org.eclipse.photran.internal.ui.vpg.PhotranResourceFilter.shouldProcess(PhotranResourceFilter.java:37)
	at org.eclipse.rephraserengine.ui.WorkbenchSelectionInfo.getResourcesSelectedIn(WorkbenchSelectionInfo.java:176)
	at org.eclipse.rephraserengine.ui.WorkbenchSelectionInfo.<init>(WorkbenchSelectionInfo.java:132)
	at org.eclipse.rephraserengine.ui.WorkbenchSelectionInfo.<init>(WorkbenchSelectionInfo.java:89)
	at org.eclipse.rephraserengine.ui.menus.RefactorMenu.processConfigElt(RefactorMenu.java:127)
	at org.eclipse.rephraserengine.ui.menus.RefactorMenu.loadRefactoringsFrom(RefactorMenu.java:110)
	at org.eclipse.rephraserengine.ui.menus.RefactorMenu.loadRefactoringsFromExtensionPoint(RefactorMenu.java:99)
	at org.eclipse.rephraserengine.ui.menus.RefactorMenu.getContributionItems(RefactorMenu.java:75)
	at org.eclipse.rephraserengine.ui.menus.RefactorMenu.isEmpty(RefactorMenu.java:372)
	at org.eclipse.rephraserengine.internal.ui.menus.RefactorableResourcePropertyTester.test(RefactorableResourcePropertyTester.java:26)
	at org.eclipse.core.internal.expressions.Property.test(Property.java:58)
	at org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:99)
	at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53)
	at org.eclipse.core.internal.expressions.AdaptExpression.evaluate(AdaptExpression.java:91)
	at org.eclipse.core.internal.expressions.CompositeExpression.evaluateOr(CompositeExpression.java:68)
	at org.eclipse.core.internal.expressions.OrExpression.evaluate(OrExpression.java:21)
	at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53)
	at org.eclipse.core.internal.expressions.IterateExpression.evaluate(IterateExpression.java:184)
	at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53)
	at org.eclipse.core.internal.expressions.WithExpression.evaluate(WithExpression.java:72)
	at org.eclipse.core.internal.expressions.ReferenceExpression.evaluate(ReferenceExpression.java:70)
	at org.eclipse.e4.ui.internal.workbench.ContributionsAnalyzer.isVisible(ContributionsAnalyzer.java:236)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.computeVisibility(ContributionRecord.java:107)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.updateVisibility(ContributionRecord.java:64)
	at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRenderer$6.changed(MenuManagerRenderer.java:446)
	at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:109)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:298)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:312)
	at org.eclipse.e4.ui.internal.services.ContextContextService.activateContext(ContextContextService.java:54)
	at org.eclipse.ui.internal.contexts.ContextService$UpdateExpression$1.run(ContextService.java:129)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
	... 23 more
Caused by: org.eclipse.core.internal.resources.ResourceException: Resource '/org.eclipse.ptp.rdt.managedbuilder.xlc.ui' does not exist.
	at org.eclipse.core.internal.resources.Resource.checkExists(Resource.java:341)
	at org.eclipse.core.internal.resources.Resource.checkAccessible(Resource.java:215)
	at org.eclipse.core.internal.resources.Project.checkAccessible(Project.java:147)
	at org.eclipse.core.internal.resources.Project.hasNature(Project.java:589)
	at org.eclipse.photran.internal.core.vpg.PhotranVPG.shouldProcessProject(PhotranVPG.java:539)
	... 55 more
Comment 1 Greg Watson CLA 2012-01-19 14:13:59 EST
Looks like you might have a problem with the plugins in your workspace. Do you have any build errors?
Comment 2 Jeffrey Overbey CLA 2012-01-19 15:02:59 EST
I think this invocation is resulting from Photran's dynamic Refactor menu, whose contents depend on the resources in the active selection.  This method appears to be seeing the resource change after the project is closed, on e4 at least.

Anyway, it makes sense to just return false in this scenario, rather than throw an error.  I made this change in ptp_5_0 and master.