Prevent TrackScheme From Freezing When Removing A Root Spot #312
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.
This PR fixes a bug that causes the TrackScheme window to freeze after the following two steps:
Here is a screen cast, demonstrating how to reproduce the problem:
The bug is triggered because the
DefaultRootsModel
andBranchTrackSchemeRootsModel
keep a list of roots to be shown in the TrackScheme view. If one of the roots is removed from theModelGraph
, it becomes invalid, but the invalid entry still remains in the list of roots. The exception is triggered when the invalid object is processed by thePainterThread
.This PR fixes the bug, by removing the invalid entry from the list of roots as soon as the corresponding Spot is removed from the
ModelGraph
.