[442703] Consider in isInvariant that the operation's type can be null.
diff --git a/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/util/EcoreUtil.java b/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/util/EcoreUtil.java
index 9c93b1a..da5e0b9 100644
--- a/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/util/EcoreUtil.java
+++ b/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/util/EcoreUtil.java
@@ -4472,7 +4472,8 @@
   {
     // Base this on the instance class names so it returns true for models using the development time version of Ecore.
     //
-    return eOperation.getEType().getInstanceClassName() == "boolean" &&
+    EClassifier eType = eOperation.getEType();
+    return eType != null && eType.getInstanceClassName() == "boolean" &&
       eOperation.getEParameters().size() == 2 &&
       eOperation.getEParameters().get(0).getEType().getInstanceClassName() == "org.eclipse.emf.common.util.DiagnosticChain" &&
       eOperation.getEParameters().get(1).getEType().getInstanceClassName() == "java.util.Map";