Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 566274 - Handle specific "connection lost" problem that can appear when using Sirius with collaborative environment (ObeoDesigner team edition or Team for Capella, for example)
Summary: Handle specific "connection lost" problem that can appear when using Sirius w...
Status: CLOSED FIXED
Alias: None
Product: Sirius
Classification: Modeling
Component: Core (show other bugs)
Version: 6.0.0   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: 6.4.0   Edit
Assignee: Laurent Redor CLA
QA Contact: Florian Barbin CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 566437 566440
  Show dependency tree
 
Reported: 2020-08-21 12:28 EDT by Laurent Redor CLA
Modified: 2021-05-07 15:33 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Laurent Redor CLA 2020-08-21 12:28:55 EDT
In a collaborative environment, when the data is host on a server, the connection with the server can be lost. Sirius is not ready to handle this context. If Sirius tries to access to data, for example with an async refresh of the UI that needs information from data to be refreshed, a org.eclipse.net4j.util.lifecycle.LifecycleException is thrown with the message "Not active: CDOTransactionImpl". This kind of errors is showed to the end-user instead of silently catch it. Indeed, in this situation, the UI should be refreshed with "blank data" instead of displaying an "incomprehensible" popup to the end-user.

Several cases, see list [1] to [4] (not exhaustive), have been already fixed in the past but without a common way to retrieve them. Generally, just a "try catch IllegalStateException" has been added. Indeed, LifecycleException is not known from Sirius and IllegalStateException is the superclass of LifecycleException.

The goal of this issue is to propose an helper to detect this kind of specific Exception, not all IllegalStateException, and then use it when it is necessary.

[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=522749
[2] https://bugs.eclipse.org/bugs/show_bug.cgi?id=539924
[3] https://bugs.eclipse.org/bugs/show_bug.cgi?id=551053
[4] https://bugs.eclipse.org/bugs/show_bug.cgi?id=552679
Comment 1 Eclipse Genie CLA 2020-08-21 14:01:28 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/168083
Comment 2 Eclipse Genie CLA 2020-08-21 14:01:30 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/168084
Comment 3 Eclipse Genie CLA 2020-08-21 14:01:31 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/168085
Comment 7 Florian Barbin CLA 2020-11-17 09:43:30 EST
Verified with Team for Capella product
Comment 8 Pierre-Charles David CLA 2020-12-04 04:23:38 EST
Available in Sirius 6.4.0, see https://download.eclipse.org/sirius/updates/releases/6.4.0/ for details.
Comment 9 Eclipse Genie CLA 2021-05-03 09:49:54 EDT
New Gerrit change created: https://git.eclipse.org/r/c/sirius/org.eclipse.sirius/+/180125