[397348] Eliminate duplicate union member types.
diff --git a/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDSimpleTypeDefinitionImpl.java b/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDSimpleTypeDefinitionImpl.java
index 63123f0..db5f3ca 100644
--- a/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDSimpleTypeDefinitionImpl.java
+++ b/plugins/org.eclipse.xsd/src/org/eclipse/xsd/impl/XSDSimpleTypeDefinitionImpl.java
@@ -700,7 +700,14 @@
resolveSimpleTypeDefinition(theMemberTypeDefinition.getTargetNamespace(), theMemberTypeDefinition.getName());
if ((forceResolve || newMemberTypeDefinition.getContainer() != null) && newMemberTypeDefinition != theMemberTypeDefinition)
{
- theMemberTypeDefinitions.set(newMemberTypeDefinition);
+ if (memberTypeDefinitions.contains(newMemberTypeDefinition))
+ {
+ theMemberTypeDefinitions.remove();
+ }
+ else
+ {
+ theMemberTypeDefinitions.set(newMemberTypeDefinition);
+ }
}
}
}