From 6e9edf7f12b60112e910cac95ee34fee9b028cfd Mon Sep 17 00:00:00 2001
From: Simon Barner <barner@fortiss.org>
Date: Fri, 8 Mar 2019 16:13:54 +0100
Subject: [PATCH] Define getEClassForClass() as synchronized

* Avoid data race between clazz2EClassCache and
  EPackage.Registry.INSTANCE

Issue-Ref: 3670
Issue-Url: https://af3-developer.fortiss.org/issues/3670

Signed-off-by: Simon Barner <barner@fortiss.org>
---
 .../src/org/fortiss/tooling/kernel/utils/.ratings               | 2 +-
 .../src/org/fortiss/tooling/kernel/utils/EcoreUtils.java        | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/utils/.ratings b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/utils/.ratings
index 9eb0d36c9..d50370431 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/utils/.ratings
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/utils/.ratings
@@ -2,7 +2,7 @@ CompositionUtils.java 34c0a191bd0fb4176c94b4d61abb5c88a679d5e8 GREEN
 ConstraintsUtils.java 0f8be020f2ca4bb08931c32452163c04a28e30ce GREEN
 EMFResourceUtils.java 979d0e1f4f66a2b3e715d2da0ebef6493f547fd7 GREEN
 EcoreSerializerBase.java 0a0c2969d793d2e68094c55c8f7b0a662ef6e5d5 GREEN
-EcoreUtils.java aca34b67bcf6a6a488e83964bfea73f6bfbff6b1 GREEN
+EcoreUtils.java 3e2e2193312cd4ce6fd0c7ea2beb7daae428d2ed YELLOW
 ExtensionPointUtils.java 7ce63242b49eb9a7cd4eaadd223f5ebce1dfd75b GREEN
 HierarchicalNameComparator.java 6face1b673126701a0721af48ead2f9766c17d46 GREEN
 IdentifierUtils.java fff43dc4e84cdd89c3ece4f5d9d89aec4b0749c2 GREEN
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/utils/EcoreUtils.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/utils/EcoreUtils.java
index aca34b67b..3e2e21933 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/utils/EcoreUtils.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/utils/EcoreUtils.java
@@ -423,7 +423,7 @@ public class EcoreUtils {
 	 * expensive.
 	 * </p>
 	 */
-	public static EClass getEClassForClass(Class<?> clazz) {
+	public static synchronized EClass getEClassForClass(Class<?> clazz) {
 		EClass eClass = null;
 
 		if(clazz2EClassCache.containsKey(clazz)) {
-- 
GitLab