[550338] Generic type cache not update on EClasses
diff --git a/features/org.eclipse.emf.base-feature/feature.xml b/features/org.eclipse.emf.base-feature/feature.xml
index 5aee2ec..811a7a4 100644
--- a/features/org.eclipse.emf.base-feature/feature.xml
+++ b/features/org.eclipse.emf.base-feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.base"
label="%featureName"
- version="2.18.0.qualifier"
+ version="2.19.0.qualifier"
provider-name="%providerName"
license-feature="org.eclipse.emf.license"
license-feature-version="2.11.0">
diff --git a/features/org.eclipse.emf.base-feature/pom.xml b/features/org.eclipse.emf.base-feature/pom.xml
index 6043ff3..7930f9d 100644
--- a/features/org.eclipse.emf.base-feature/pom.xml
+++ b/features/org.eclipse.emf.base-feature/pom.xml
@@ -11,7 +11,7 @@
<groupId>org.eclipse.emf.features</groupId>
<artifactId>org.eclipse.emf.base</artifactId>
- <version>2.18.0-SNAPSHOT</version>
+ <version>2.19.0-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
</project>
diff --git a/features/org.eclipse.emf.ecore-feature/feature.xml b/features/org.eclipse.emf.ecore-feature/feature.xml
index 61e67d9..6d56c58 100644
--- a/features/org.eclipse.emf.ecore-feature/feature.xml
+++ b/features/org.eclipse.emf.ecore-feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.ecore"
label="%featureName"
- version="2.18.0.qualifier"
+ version="2.19.0.qualifier"
provider-name="%providerName"
license-feature="org.eclipse.emf.license"
license-feature-version="2.11.0">
diff --git a/features/org.eclipse.emf.ecore-feature/pom.xml b/features/org.eclipse.emf.ecore-feature/pom.xml
index 99cd417..345ae76 100644
--- a/features/org.eclipse.emf.ecore-feature/pom.xml
+++ b/features/org.eclipse.emf.ecore-feature/pom.xml
@@ -12,7 +12,7 @@
<groupId>org.eclipse.emf.features</groupId>
<artifactId>org.eclipse.emf.ecore</artifactId>
- <version>2.18.0-SNAPSHOT</version>
+ <version>2.19.0-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
</project>
diff --git a/plugins/org.eclipse.emf.codegen.ecore/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.codegen.ecore/META-INF/MANIFEST.MF
index f11a43c..a1fa883 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.codegen.ecore/META-INF/MANIFEST.MF
@@ -23,7 +23,7 @@
org.eclipse.core.resources;bundle-version="[3.6.0,4.0.0)",
org.eclipse.jdt.core;bundle-version="[3.6.0,4.0.0)",
org.eclipse.jdt.launching;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.18.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.19.0,3.0.0)";visibility:=reexport,
org.eclipse.emf.codegen;bundle-version="[2.19.0,3.0.0)";visibility:=reexport,
org.eclipse.emf.ecore.xmi;bundle-version="[2.16.0,3.0.0)",
org.eclipse.text;bundle-version="[3.5.0,4.0.0)"
diff --git a/plugins/org.eclipse.emf.ecore.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.ecore.edit/META-INF/MANIFEST.MF
index 215ca7c..154cae8 100644
--- a/plugins/org.eclipse.emf.ecore.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.ecore.edit/META-INF/MANIFEST.MF
@@ -11,7 +11,7 @@
Export-Package: org.eclipse.emf.ecore.provider,
org.eclipse.emf.ecore.provider.annotation
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.6.0,4.0.0)";resolution:=optional;x-installation:=greedy,
- org.eclipse.emf.ecore;bundle-version="[2.18.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.19.0,3.0.0)";visibility:=reexport,
org.eclipse.emf.edit;bundle-version="[2.15.0,3.0.0)";visibility:=reexport
Import-Package: org.osgi.framework;version="[1.5.0,2.0.0)"
Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.emf.ecore.xcore/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.ecore.xcore/META-INF/MANIFEST.MF
index 58d13c5..3555811 100644
--- a/plugins/org.eclipse.emf.ecore.xcore/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.ecore.xcore/META-INF/MANIFEST.MF
@@ -10,7 +10,7 @@
Bundle-ActivationPolicy: lazy
Require-Bundle: org.eclipse.xtext;bundle-version="[2.13.0,3.0.0)";visibility:=reexport,
org.apache.log4j;bundle-version="[1.2.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.ecore;bundle-version="[2.18.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.19.0,3.0.0)";visibility:=reexport,
org.eclipse.xtext.util;bundle-version="[2.13.0,3.0.0)",
org.antlr.runtime;bundle-version="[3.2.0,3.2.1)",
org.eclipse.xtext.xbase;bundle-version="[2.13.0,3.0.0)";visibility:=reexport,
diff --git a/plugins/org.eclipse.emf.ecore/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.ecore/META-INF/MANIFEST.MF
index b04475e..8ad53e7 100644
--- a/plugins/org.eclipse.emf.ecore/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.ecore/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.emf.ecore;singleton:=true
-Bundle-Version: 2.18.0.qualifier
+Bundle-Version: 2.19.0.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.emf.ecore.plugin.EcorePlugin$Implementation$Activator
Bundle-Vendor: %providerName
diff --git a/plugins/org.eclipse.emf.ecore/pom.xml b/plugins/org.eclipse.emf.ecore/pom.xml
index c86888e..bcd1858 100644
--- a/plugins/org.eclipse.emf.ecore/pom.xml
+++ b/plugins/org.eclipse.emf.ecore/pom.xml
@@ -12,7 +12,7 @@
<groupId>org.eclipse.emf</groupId>
<artifactId>org.eclipse.emf.ecore</artifactId>
- <version>2.18.0-SNAPSHOT</version>
+ <version>2.19.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/impl/EClassImpl.java b/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/impl/EClassImpl.java
index 78a19c6..68ba010 100644
--- a/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/impl/EClassImpl.java
+++ b/plugins/org.eclipse.emf.ecore/src/org/eclipse/emf/ecore/impl/EClassImpl.java
@@ -2206,6 +2206,7 @@
{
eAllStructuralFeatures = null;
eAllStructuralFeaturesData = null;
+ eAllStructuralFeatureTypes = null;
}
if (isAllOperationsCollectionModified())
{
diff --git a/tests/org.eclipse.emf.test.core/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.test.core/META-INF/MANIFEST.MF
index 40fa5dc..0179b4a 100644
--- a/tests/org.eclipse.emf.test.core/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.test.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.emf.test.core;singleton:=true
-Bundle-Version: 2.18.0.qualifier
+Bundle-Version: 2.19.0.qualifier
Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -28,7 +28,7 @@
org.eclipse.emf.test.core.xrefsopposite.util
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.6.0,4.0.0)",
org.eclipse.core.resources;bundle-version="[3.6.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.18.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.19.0,3.0.0)";visibility:=reexport,
org.eclipse.emf.ecore.change;bundle-version="[2.14.0,3.0.0)",
org.eclipse.emf.ecore.xmi;bundle-version="[2.16.0,3.0.0)";visibility:=reexport,
org.eclipse.xsd;bundle-version="[2.16.0,3.0.0)",
diff --git a/tests/org.eclipse.emf.test.core/pom.xml b/tests/org.eclipse.emf.test.core/pom.xml
index f898ee0..411e6c9 100644
--- a/tests/org.eclipse.emf.test.core/pom.xml
+++ b/tests/org.eclipse.emf.test.core/pom.xml
@@ -12,7 +12,7 @@
<groupId>org.eclipse.emf</groupId>
<artifactId>org.eclipse.emf.test.core</artifactId>
- <version>2.18.0-SNAPSHOT</version>
+ <version>2.19.0-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
</project>
diff --git a/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/AllSuites.java b/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/AllSuites.java
index c16bc14..9d6ad2f 100644
--- a/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/AllSuites.java
+++ b/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/AllSuites.java
@@ -43,6 +43,7 @@
org.eclipse.emf.test.core.ecore.ProxyURITest.class,
org.eclipse.emf.test.core.ecore.ResourceAttachmentTest.class,
org.eclipse.emf.test.core.ecore.FeatureMapTest.class,
+ org.eclipse.emf.test.core.ecore.EClassGenericTypeCacheTest.class,
org.eclipse.emf.test.core.ecore.DiagnosticianTest.class,
org.eclipse.emf.test.core.ecore.ValidationTest.class,
org.eclipse.emf.test.core.ecore.KeyTest.class,
diff --git a/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/ecore/EClassGenericTypeCacheTest.java b/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/ecore/EClassGenericTypeCacheTest.java
new file mode 100644
index 0000000..ff02661
--- /dev/null
+++ b/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/ecore/EClassGenericTypeCacheTest.java
@@ -0,0 +1,103 @@
+/**
+ * Copyright (c) 2019 Eclipse contributors and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ *
+ * Contributed via https://bugs.eclipse.org/bugs/show_bug.cgi?id=550338
+ */
+package org.eclipse.emf.test.core.ecore;
+
+
+import static java.util.Arrays.*;
+import static org.junit.Assert.*;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EClassImpl;
+import org.junit.Test;
+
+
+/**
+ * Test for super type adapter in {@link EClassImpl}.
+ */
+public class EClassGenericTypeCacheTest
+{
+ @Test
+ public void testEClassImplSuperTypeAdapter()
+ {
+ EClass eClass = EcoreFactory.eINSTANCE.createEClass();
+
+ // add attribute1
+ EAttribute attribute1 = EcoreFactory.eINSTANCE.createEAttribute();
+ attribute1.setName("attribute1");
+ attribute1.setEType(EcorePackage.Literals.ESTRING);
+ assertNotNull(attribute1.getEGenericType());
+ assertEquals(EcorePackage.Literals.ESTRING, attribute1.getEGenericType().getEClassifier());
+
+ eClass.getEStructuralFeatures().add(attribute1);
+
+ assertEquals(asList(attribute1), eClass.getEAllStructuralFeatures());
+
+ assertNotNull(eClass.getFeatureType(attribute1));
+ assertEquals(EcorePackage.Literals.ESTRING, eClass.getFeatureType(attribute1).getEClassifier());
+
+ // add attribute2
+ EAttribute attribute2 = EcoreFactory.eINSTANCE.createEAttribute();
+ attribute2.setName("attribute2");
+ attribute2.setEType(EcorePackage.Literals.EINT);
+ assertNotNull(attribute2.getEGenericType());
+ assertEquals(EcorePackage.Literals.EINT, attribute2.getEGenericType().getEClassifier());
+
+ eClass.getEStructuralFeatures().add(attribute2);
+
+ assertEquals(asList(attribute1, attribute2), eClass.getEAllStructuralFeatures());
+
+ assertNotNull(eClass.getFeatureType(attribute1));
+ assertEquals(EcorePackage.Literals.ESTRING, eClass.getFeatureType(attribute1).getEClassifier());
+ assertNotNull(eClass.getFeatureType(attribute2));
+ assertEquals(EcorePackage.Literals.EINT, eClass.getFeatureType(attribute2).getEClassifier());
+
+ // add attribute3
+ EAttribute attribute3 = EcoreFactory.eINSTANCE.createEAttribute();
+ attribute3.setName("attribute2");
+ attribute3.setEType(EcorePackage.Literals.ELONG);
+ assertNotNull(attribute3.getEGenericType());
+ assertEquals(EcorePackage.Literals.ELONG, attribute3.getEGenericType().getEClassifier());
+
+ eClass.getEStructuralFeatures().add(attribute3);
+
+ assertEquals(asList(attribute1, attribute2, attribute3), eClass.getEAllStructuralFeatures());
+
+ assertNotNull(eClass.getFeatureType(attribute1));
+ assertEquals(EcorePackage.Literals.ESTRING, eClass.getFeatureType(attribute1).getEClassifier());
+ assertNotNull(eClass.getFeatureType(attribute2));
+ assertEquals(EcorePackage.Literals.EINT, eClass.getFeatureType(attribute2).getEClassifier());
+ assertNotNull(eClass.getFeatureType(attribute3));
+ assertEquals(EcorePackage.Literals.ELONG, eClass.getFeatureType(attribute3).getEClassifier());
+
+ // remove attribute2
+ eClass.getEStructuralFeatures().remove(attribute2);
+
+ assertEquals(asList(attribute1, attribute3), eClass.getEAllStructuralFeatures());
+
+ assertNotNull(eClass.getFeatureType(attribute1));
+ assertEquals(EcorePackage.Literals.ESTRING, eClass.getFeatureType(attribute1).getEClassifier());
+ assertNotNull(eClass.getFeatureType(attribute3));
+ assertEquals(EcorePackage.Literals.ELONG, eClass.getFeatureType(attribute3).getEClassifier());
+
+ // add attribute2 and remove attribute1
+ eClass.getEStructuralFeatures().add(attribute2);
+ eClass.getEStructuralFeatures().remove(attribute1);
+
+ assertEquals(asList(attribute3, attribute2), eClass.getEAllStructuralFeatures());
+
+ assertNotNull(eClass.getFeatureType(attribute3));
+ assertEquals(EcorePackage.Literals.ELONG, eClass.getFeatureType(attribute3).getEClassifier());
+ assertNotNull(eClass.getFeatureType(attribute2));
+ assertEquals(EcorePackage.Literals.EINT, eClass.getFeatureType(attribute2).getEClassifier());
+ }
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/ecore/EcoreTest.java b/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/ecore/EcoreTest.java
index f283672..cc9bead 100644
--- a/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/ecore/EcoreTest.java
+++ b/tests/org.eclipse.emf.test.core/src/org/eclipse/emf/test/core/ecore/EcoreTest.java
@@ -249,7 +249,6 @@
for (EObject eObject : ePackage.eContents())
{
URI eProxyURI = EcoreUtil.getURI(eObject);
- System.err.println("###" + eProxyURI);
EObject otherEObject = resourceSet.getEObject(eProxyURI, false);
assertSame("The proxy URI " + eProxyURI + " fails to resolve to the correct object", eObject, otherEObject);
}