Repository navigation
Conversation
Util.getModelElementResources and the editor3x PDEExtensionLookup created a new PDEExtensionRegistry on every call. Each one registers listeners on the PluginModelManager and is never disposed; use the shared registry of PDECore instead. The cached resource set was assigned before it was filled, so a workspace change could null it in the middle of a build. Build into a local set and publish it only if no e4xmi change invalidated it meanwhile. The icon dialog started a new Timer thread on every keystroke. It now debounces the search with a Job that is cancelled when the dialog closes. Assisted-by: multiple AI agents and layers of automated tooling 🤖
vogella
force-pushed
the
vogella/e4-leaks-registry-cache
branch
from
October 10, 2026 10:14
3844120 to
1a887bf
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The e4 model editor created a new PDEExtensionRegistry each time it rebuilt its cache of model resources, and the editor3x extension lookup did the same per call. Each instance registers listeners on the PluginModelManager that are never removed, so both now use the shared registry of PDECore, which also avoids rebuilding the registry from scratch. The cached resource set was published before it was filled, so an e4xmi change during a build could null it under the builder; it is now built locally and only published if no change invalidated it meanwhile. The icon dialog started a new Timer thread on every keystroke and now debounces its search with a single Job that is cancelled when the dialog closes.