| Summary: | NPE during save | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Modeling] Sirius | Reporter: | Laurent Redor <laurent.redor> | ||||||
| Component: | Core | Assignee: | Laurent Redor <laurent.redor> | ||||||
| Status: | CLOSED FIXED | QA Contact: | Pierre-Charles David <pierre-charles.david> | ||||||
| Severity: | major | ||||||||
| Priority: | P3 | CC: | florian.barbin, pierre-charles.david | ||||||
| Version: | 2.0.0 | Keywords: | triaged | ||||||
| Target Milestone: | 3.0.0M5 | ||||||||
| Hardware: | PC | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
|
Description
Laurent Redor
Short analysis: * A Throwable is catch during getSavingPolicy().save(). The status of the the "save" RunnableWithResult is set to KO and its result is Null. * This runnable is run with getTransactionalEditingDomain().runExclusive(save). At l.336 of TransactionalEditingDomainImpl, the status is set to OK_STATUS (this overrides the previous KO). * So after, the status.isOK() check has not the expected result and we try to iterate on the Null result without check. This problem is here since the changed made for the bug 445603 with commit [1]. [1] http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=a2085a7c78ef11663a44fa9ebfddfbee0366736a Created attachment 249517 [details]
SampleProject.zip
in comment 0, the step "Save the session" misses (at second to last step) Created attachment 249524 [details]
SimpleSampleProject.zip
Another steps to reproduce more quickly:
* Import the project SimpleSample from SimpleSampleProject.zip
* Unfold My.ecore
* Create new representation "package entities" on "root" package
* Save the session
* The save of the Session failed with a NPE
A fix is proposed here: https://git.eclipse.org/r/38551 Fixed by bc0d257923c241a5539398dd742760e2dc93522f. Verified on Sirius 3.0.0rc1a. Available in Sirius 3.0.0. See https://wiki.eclipse.org/Sirius/3.0.0. |