eclipse-platform / eclipse-platform/eclipse.platform

Registry exception in property tester init prevents proper startup

Open
#2,593 7 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
165
Forks
174
Avg merge
2d 8h
Merged PRs (30d)
22

Description

- [x] I verified I can reproduce this issue against [latest Integration Build of Eclipse SDK](https://download.eclipse.org/eclipse/downloads/)

## Steps to reproduce

From a fresh installation and clean workspace:

* install from this spec: https://github.com/user-attachments/files/26249857/eclipse-windows-setup.txt
* open maven project
* open java source
* restart eclipse

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

```java
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

- [x] 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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.