Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Merks2012-10-03 05:46:32 +0000
committerEd Merks2012-10-03 05:46:32 +0000
commit0bd67bf9cc4a31e4dee85cc776235dfa47582a65 (patch)
tree47f90363a74f374e4faab6135fb446fec8a4858a
parent28752ac65009b138c9444e9ecc49228ba72e7a18 (diff)
downloadorg.eclipse.emf-0bd67bf9cc4a31e4dee85cc776235dfa47582a65.tar.gz
org.eclipse.emf-0bd67bf9cc4a31e4dee85cc776235dfa47582a65.tar.xz
org.eclipse.emf-0bd67bf9cc4a31e4dee85cc776235dfa47582a65.zip
[390474] Guard against recursive map entry type.
-rw-r--r--features/org.eclipse.emf.codegen.ecore-feature/feature.xml2
-rw-r--r--plugins/org.eclipse.emf.codegen.ecore/META-INF/MANIFEST.MF2
-rw-r--r--plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/impl/GenBaseImpl.java11
3 files changed, 10 insertions, 5 deletions
diff --git a/features/org.eclipse.emf.codegen.ecore-feature/feature.xml b/features/org.eclipse.emf.codegen.ecore-feature/feature.xml
index f85a8aed2..3587fc9f5 100644
--- a/features/org.eclipse.emf.codegen.ecore-feature/feature.xml
+++ b/features/org.eclipse.emf.codegen.ecore-feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.emf.codegen.ecore"
label="%featureName"
- version="2.8.1.qualifier"
+ version="2.8.2.qualifier"
provider-name="%providerName"
license-feature="org.eclipse.emf.license"
license-feature-version="2.7.0.qualifier">
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 a17e9491f..d82abe978 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.codegen.ecore/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.emf.codegen.ecore; singleton:=true
-Bundle-Version: 2.8.1.qualifier
+Bundle-Version: 2.8.2.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.emf.codegen.ecore.CodeGenEcorePlugin$Implementation
Bundle-Vendor: %providerName
diff --git a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/impl/GenBaseImpl.java b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/impl/GenBaseImpl.java
index 02e24dbc6..9ceb197bc 100644
--- a/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/impl/GenBaseImpl.java
+++ b/plugins/org.eclipse.emf.codegen.ecore/src/org/eclipse/emf/codegen/ecore/genmodel/impl/GenBaseImpl.java
@@ -1029,9 +1029,14 @@ public abstract class GenBaseImpl extends EObjectImpl implements GenBase
String mapType = getEffectiveMapEntryType();
if (getEffectiveComplianceLevel().getValue() >= GenJDKLevel.JDK50)
{
- String keyType = genClass.getMapEntryKeyFeature().getType(context);
- String valueType = genClass.getMapEntryValueFeature().getType(context);
- mapType += "<" + keyType + ", " + valueType + ">";
+ GenFeature mapEntryKeyFeature = genClass.getMapEntryKeyFeature();
+ GenFeature mapEntryValueFeature = genClass.getMapEntryValueFeature();
+ if (mapEntryKeyFeature.getTypeGenClassifier() != genClass && mapEntryValueFeature.getTypeGenClassifier() != genClass)
+ {
+ String keyType = mapEntryKeyFeature.getType(context);
+ String valueType = mapEntryValueFeature.getType(context);
+ mapType += "<" + keyType + ", " + valueType + ">";
+ }
}
return mapType;
}

Back to the top