GLSP-1717: Fix bounds computation error after diagram export#525
Open
tortmayr wants to merge 1 commit into
Open
GLSP-1717: Fix bounds computation error after diagram export#525tortmayr wants to merge 1 commit into
tortmayr wants to merge 1 commit into
Conversation
Contributor
|
Preview: Open browser example Deployed from commit d55af1b. |
Exports render the diagram through the hidden viewer, so the hidden bounds updater collected bounds and routing points for the export clone but never cleaned them up. The stale entries leaked into the next computedBounds action, causing 'Model element not found' server errors when elements had been deleted in the meantime. - Always reset collected bounds data and routing points in postUpdate, regardless of the rendering cause or errors during computation Fixes eclipse-glsp/glsp#1717
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.
What it does
Exports render the diagram through the hidden viewer, so the
GLSPHiddenBoundsUpdatercollected bounds and routing points for the export clone but never cleaned them up.
The stale entries leaked into the next
computedBoundsaction, causingModel element not foundserver errors when elements had been deleted in the meantime.postUpdate(via try/finally), regardless of the rendering cause or errors during the computation
Fixes eclipse-glsp/glsp#1717
How to test
pnpm install && pnpm build pnpm -C examples/workflow-standalone startbounds computation that resets the leaked state and masks the bug)
Ctrl+Shift+EDelWithout this fix, the
computedBoundsresponse contains stale entries for every elementof the export clone (including the deleted one) and the server rejects the update with
Could not retrieve element with id: 'task_ChkTp_icon'. With the fix, the update succeeds.Follow-ups
The same early-return-without-cleanup flaw exists upstream in sprotty's
HiddenBoundsUpdater, so plain-sprotty adopters are affected too. Worth filing upstream.Changelog