[512452] Validate OCL in Ecore expression bodies
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/validation/EcoreOCLEValidator.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/validation/EcoreOCLEValidator.java
index 1743c16..72bfa90 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/validation/EcoreOCLEValidator.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/validation/EcoreOCLEValidator.java
@@ -11,6 +11,7 @@
 package org.eclipse.ocl.pivot.internal.validation;
 
 import java.lang.ref.WeakReference;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -31,6 +32,7 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.EValidator;
 import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.util.Diagnostician;
 import org.eclipse.emf.ecore.util.EObjectValidator;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.util.EcoreValidator;
@@ -609,6 +611,9 @@
 						return false;
 					}
 				}
+				Map<Object,Object> newContext = new HashMap<>(context);
+				newContext.remove(EObjectValidator.ROOT_OBJECT);
+				return Diagnostician.INSTANCE.validate(expressionInOCL, diagnostics, newContext);
 			}
 		}
 		catch (ParserException e) {