Sirius 4.1.2rc1
[508435] Do not execute STS#executeOperation in a sub-transaction

Calls to STS#executeOperation are (normally) always performed in the
context of TEDCA.performModelChange(), which already opens an enclosing
transaction. Opening a sub-transaction here creates two operations on
the command stack for one top-level user operation, which messes with
undo/redo behavior.

Instead, always execute the SiriusCommand directly if it can be
executed. If it can't, we simply return without performing any actual
change. This still leaves an empty command on the stack in the case of
an unexecutable command, but properly cancelling the already started
enclosing transaction would require deeper changes that will have to
wait for a future version.

Bug: 508435
Change-Id: I0e7e966b67ebea1644f2d33cd69f3673eda9185f
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
1 file changed
tree: 83d0ca14e1a748fa660dbf1e31f53653ce0cca81
  1. packaging/
  2. plugins/
  3. releng/
  4. .gitattributes
  5. .gitignore
  6. .travis.yml
  7. build.sh
  8. CONTRIBUTING.md
  9. pom.xml
  10. README.md
README.md

Eclipse Sirius

Build Status

Sirius enables the specification of a modeling workbench in terms of graphical, table or tree editors with validation rules and actions using declarative descriptions.

For more details see the project page and the main wiki page.

Building

The build uses Tycho. To launch a complete build, issue

mvn clean package

from the top-level directory. The resulting update-site (p2 repository) can be found in packaging/org.eclipse.sirius.update/target/repository.

By default the build uses a Neon-based target platform. You can specify a different platform like this:

mvn clean package -Dplatform-version-name=name

where name can be any of the following values:

  • mars (Eclipse 4.5)
  • neon (Eclipse 4.6, the default and reference target platform)
  • canary (uses nightly builds of all our dependencies, only used for testing)

The corresponding target platform definitions can be found in releng/org.eclipse.sirius.targets.