This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 414912 - CoreException: No property tester contributes a property X to type class Y using Eclipse 4.4
Summary: CoreException: No property tester contributes a property X to type class Y us...
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.4   Edit
Hardware: PC Linux
: P3 major (vote)
Target Milestone: 4.4 M2   Edit
Assignee: Wojciech Sudol CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 415435 (view as bug list)
Depends on:
Blocks: 415690
  Show dependency tree
 
Reported: 2013-08-12 16:14 EDT by Marc-André Laperle CLA
Modified: 2013-09-17 09:10 EDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marc-André Laperle CLA 2013-08-12 16:14:01 EDT
Using Eclipse 4.4.0-I20130807-2000, CDT 8.2.0.201308121741

1. Start debugging a Java program (a runtime Eclipse works)
2. In the Debug view, click on different items in the tree. Exception occurs:

org.eclipse.core.runtime.CoreException: No property tester contributes a property org.eclipse.cdt.debug.ui.isReverseDebuggingEnabled to type class org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget
	at org.eclipse.core.internal.expressions.TypeExtensionManager.getProperty(TypeExtensionManager.java:123)
	at org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:96)
	at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53)
	at org.eclipse.core.internal.expressions.IterateExpression.evaluate(IterateExpression.java:189)
	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.CompositeExpression.evaluateAnd(CompositeExpression.java:53)
	at org.eclipse.core.internal.expressions.AndExpression.evaluate(AndExpression.java:29)
	at org.eclipse.core.internal.expressions.ReferenceExpression.evaluate(ReferenceExpression.java:70)
	at org.eclipse.e4.ui.internal.workbench.ContributionsAnalyzer$1.run(ContributionsAnalyzer.java:252)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.ContributionsAnalyzer.isVisible(ContributionsAnalyzer.java:250)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.computeVisibility(ContributionRecord.java:167)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributionRecord.updateVisibility(ContributionRecord.java:97)
	at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:185)
	at org.eclipse.e4.ui.workbench.renderers.swt.MenuManagerRendererFilter.updateElementVisibility(MenuManagerRendererFilter.java:196)
	at org.eclipse.ui.internal.WorkbenchWindow$8.run(WorkbenchWindow.java:643)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3715)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3364)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:613)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:109)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:80)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:372)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:226)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1426)

Since the Error log view takes focus every time the exception gets logged, I can't click on any other view while in the Debug perspective so I have to constantly switch perspective.
Comment 1 Marc Khouzam CLA 2013-08-14 10:24:55 EDT
Redirecting to platform as these exception are now visible to due a change in o.e.e4.ui.internal.workbench.ContributionsAnalyzer.

It turns out that this exception was happening before 4.4 but was not being logged.  It is not clear to me if the exception is acceptable, but my impression is that it is.

The exception shows up all the time now because the code in
  ContributionsAnalyzer.isVisible(McoreExprssion, ExpressionContext)
has changed from

 try {
   [...]
   return ref.evaluate(eContext) != EvaluationResult.FALSE;
 } catch (CoreException e) {
   trace("isVisible exception", e); //$NON-NLS-1$
 }

to

 SafeRunner.run(new ISafeRunnable() {
    public void run() throws Exception {
      ret[0] = ref.evaluate(eContext) != EvaluationResult.FALSE;
    }
    public void handleException(Throwable exception) {
      trace("isVisible exception", exception); //$NON-NLS-1$
    }
 });
and the SafeRunner code logs CoreException.

Note also that I've seen this exception for a couple of other properties of CDT, not just isReverseDebuggingEnabled.  Such as: org.eclipse.cdt.dsf.debug.ui.areNumberFormatsSupported
Comment 2 Marc Khouzam CLA 2013-08-14 10:27:31 EDT
(In reply to comment #1)
> Redirecting to platform as these exception are now visible to due a change
> in o.e.e4.ui.internal.workbench.ContributionsAnalyzer.

The change in platform was done as part of Bug 412927
Comment 3 Paul Webster CLA 2013-08-14 11:38:32 EDT
I agree that we probably don't want that much logging of the CoreExceptions in this case.  We'll fix that.

But the try was catching CoreException, and the trace statement is the same.  Shouldn't it have logged the exceptions in Kepler as well?

PW
Comment 4 Marc-André Laperle CLA 2013-08-14 13:19:17 EDT
I get this non-CDT one too:
org.eclipse.core.runtime.CoreException: No property tester contributes a property org.eclipse.core.resources.name to type class org.eclipse.jdt.internal.core.CompilationUnit
	at org.eclipse.core.internal.expressions.TypeExtensionManager.getProperty(TypeExtensionManager.java:123)
Comment 5 Paul Webster CLA 2013-08-14 13:21:11 EDT
And you're right, while not optimal, the CoreExceptions are expected in a lot of common cases (they're not really exceptions, just failures)

PW
Comment 6 Marc Khouzam CLA 2013-08-14 13:27:03 EDT
(In reply to comment #3)

> But the try was catching CoreException, and the trace statement is the same.
> Shouldn't it have logged the exceptions in Kepler as well?

It is actually not the trace statement in isVisiable() that logs the exception.  It is SaferRunner.handleException() that calls RuntimeLog.log().
Comment 7 Paul Webster CLA 2013-08-16 13:37:25 EDT
Wojtek, could you look at replacing our SafeRunner call in ContributionsAnalyzer.isVisible(*) with something equivalent that doesn't log?

If you push the change to master in gerrit, we can see about backporting it to 4.3.1

PW
Comment 8 Wojciech Sudol CLA 2013-08-19 08:48:29 EDT
(In reply to comment #7)
> Wojtek, could you look at replacing our SafeRunner call in
> ContributionsAnalyzer.isVisible(*) with something equivalent that doesn't
> log?
> 
> If you push the change to master in gerrit, we can see about backporting it
> to 4.3.1
> 
> PW

OK, I will start working on it on 08/21.
Comment 9 Marc-André Laperle CLA 2013-08-20 10:38:56 EDT
*** Bug 415435 has been marked as a duplicate of this bug. ***
Comment 10 Paul Webster CLA 2013-08-22 08:30:00 EDT
Review URL: https://git.eclipse.org/r/15774
Comment 12 Marc-André Laperle CLA 2013-08-22 13:18:49 EDT
Thanks! Would it be possible to get an integration build that includes this fix?
Comment 13 Paul Webster CLA 2013-08-22 13:21:37 EDT
(In reply to comment #12)
> Thanks! Would it be possible to get an integration build that includes this
> fix?

It should be in the integration build on Tuesday, I20130827-0800 at http://download.eclipse.org/eclipse/downloads/

PW
Comment 14 Marc-André Laperle CLA 2013-08-22 13:26:29 EDT
(In reply to comment #13)
> (In reply to comment #12)
> > Thanks! Would it be possible to get an integration build that includes this
> > fix?
> 
> It should be in the integration build on Tuesday, I20130827-0800 at
> http://download.eclipse.org/eclipse/downloads/
> 
> PW

Ok thanks. I thought they could be started manually.
Comment 15 Dani Megert CLA 2013-09-09 10:49:57 EDT
Not sure this fix is complete. See e.g. bug 410647 which I can reproduce with 'master'.
Comment 16 Wojciech Sudol CLA 2013-09-09 11:17:31 EDT
(In reply to Dani Megert from comment #15)
> Not sure this fix is complete. See e.g. bug 410647 which I can reproduce
> with 'master'.

The change I provided, fixed this bug (I verified it) by changing ContributionsAnalyzer class, which does not appear in the bug 410647, so I think this is different defect.
Comment 17 Wojciech Sudol CLA 2013-09-17 09:10:21 EDT
Verified in the build: I20130916-2330