Registry exception in property tester init prevents proper startup

Open Beginner friendly
#2,593 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
68/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
java
Domain
tooling

Research direction

Start in runtime/bundles/org.eclipse.core.expressions/src/org/eclipse/core/internal/expressions/TypeExtensionManager.java at the loadTesters loop around line 193. Reproduce the fresh-install and clean-workspace startup sequence if possible, then verify that an InvalidRegistryObjectException is handled like the existing CoreException path, with logging and a null tester so startup proceeds.

Written by the indexing model from the issue text.

Description

bug

Steps to reproduce

From a fresh installation and clean workspace:

see https://github.com/groovy/groovy-eclipse/issues/1660

When groovy bundles are refreshed to select a specific one, a property tester is part of that refresh. The next request to org.eclipse.core.internal.expressions.TypeExtensionManager#loadTesters fails with org.eclipse.core.runtime.InvalidRegistryObjectException.

The tester loader loop already catches CoreException and substitutes a null tester plus logs. I think this loop could also catch InvalidRegistryObjectException.

https://github.com/eclipse-platform/eclipse.platform/blob/d049690366379ba90fa6472cfb6d42a6360c0b4a/runtime/bundles/org.eclipse.core.expressions/src/org/eclipse/core/internal/expressions/TypeExtensionManager.java#L193

			IPropertyTester[] result= new IPropertyTester[typeConfigs.size()];
			for (int i= 0; i < result.length; i++) {
				IConfigurationElement config= typeConfigs.get(i);
				try {
					result[i]= new PropertyTesterDescriptor(config);
				} catch (CoreException e) {
					ILog.of(TypeExtensionManager.class).log(e.getStatus());
					result[i]= NULL_PROPERTY_TESTER;
				} catch (InvalidRegistryObjectException e) { // NEW
					ILog.of(TypeExtensionManager.class).log(...);
					result[i]= NULL_PROPERTY_TESTER;
				}
			}

Community

  • I understand reporting an issue to this OSS project does not mandate anyone to fix it. Other contributors may consider the issue, or not, at their own convenience. The most efficient way to get it fixed is that I fix it myself and contribute it back as a good quality patch to the project.
Dominant language
Java
Stars
165
Forks
174
Avg merge
1d 19h
Merged PRs (30d)
22

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from eclipse-platform/eclipse.platform

All issues in eclipse-platform/eclipse.platform

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.