[564239] Fix potential ConcurrentModificationException

A ConcurrentModificationException has been observed during a live
edition of a VSM (with a corresponding sequence diagram on manual
refresh opened):
java.util.ConcurrentModificationException
	at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
	at java.util.ArrayList$Itr.next(Unknown Source)
	at org.eclipse.sirius.diagram.ui.graphical.figures.OverlayLabelsDrawerFigure.paintLabels(OverlayLabelsDrawerFigure.java:79)
	at org.eclipse.sirius.diagram.ui.graphical.figures.OverlayLabelsDrawerFigure.paint(OverlayLabelsDrawerFigure.java:69)
	at org.eclipse.draw2d.Figure.paintChildren(Figure.java:1170)
	...
		at org.eclipse.draw2d.Figure.paintClientArea(Figure.java:1205)
	at org.eclipse.draw2d.ScalableFreeformLayeredPane.paintClientArea(ScalableFreeformLayeredPane.java:60)
	at org.eclipse.gmf.runtime.draw2d.ui.internal.graphics.ScalableFreeformLayeredPane.paintClientArea(ScalableFreeformLayeredPane.java:82)
	at org.eclipse.draw2d.Figure.paint(Figure.java:1120)
	at org.eclipse.draw2d.parts.Thumbnail$ThumbnailUpdater.run(Thumbnail.java:195)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	...
	at org.eclipse.sirius.editor.tools.internal.presentation.CustomSiriusEditor.doSave(CustomSiriusEditor.java:511)
	...

This problem was always here in code for bugzilla 560543 [1], in
LabelsOverlayFigure (now renamed in OverlayLabelsDrawerFigure), but not
detected.

[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=560543

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=564239
Change-Id: I43b2dc265844d628357e2c2bac6035c6fccbea24
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
1 file changed
tree: 994265ff0f48d60f4a2999de5e5d2ea92a6a5af0
  1. .gitattributes
  2. .gitignore
  3. .travis.yml
  4. CONTRIBUTING
  5. Jenkinsfile
  6. LICENSE
  7. NOTICE
  8. README.md
  9. build.sh
  10. packaging/
  11. plugins/
  12. pom.xml
  13. releng/
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.