Summary: | Canonical refresh done in DiagramDialectUIServices.export might lead to IllegealStateExceptions | ||
---|---|---|---|
Product: | [Modeling] Sirius | Reporter: | Maxime Porhel <maxime.porhel> |
Component: | Diagram | Assignee: | Project Inbox <sirius.diagram-inbox> |
Status: | NEW --- | QA Contact: | |
Severity: | normal | ||
Priority: | P3 | CC: | esteban.dugueperoux, info, laurent.fasani, laurent.redor, maxime.porhel |
Version: | 3.1.0 | Keywords: | triaged |
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
See Also: | https://git.eclipse.org/r/63697 | ||
Whiteboard: | |||
Bug Depends on: | 485324, 492517 | ||
Bug Blocks: |
Description
Maxime Porhel
2016-04-27 04:07:41 EDT
DiagramDialectUIServices.export does a canonical refresh before creating the offscreen diagram edit part to do the export. This canonical refresh is not safe as it is executed out of a transaction (no precommit calls, if the model is modified "cannot write resource without transaction" ISE, model modified but opened editor not refresh by postcommits, ...) See coments on https://git.eclipse.org/r/#/c/63697/1 The possibility to execute the canonical refresh in a transaction then leads to several questions: . who create the transaction ? The diagramDialectUIServices.export must be consistent with the others dialects and services of DialectUIServices . can the export add a command on the undo stack, what is the meaning of this undo: also delete the created file(s) ? . if we do a canonical refresh, why do we not do a full refresh (and same question for table and tree) , or should be detect that there is a problem and ask the user to refresh its representation ? Note that the action is used for the export from the aird contextual menu and from the tabbar. |