Atlas server fails to start if duplicate types are found during Typesystem bootstrap
diff --git a/release-log.txt b/release-log.txt
index 4a82306..470b085 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -32,6 +32,7 @@
ATLAS-379 Create sqoop and falcon metadata addons (venkatnrangan,bvellanki,sowmyaramesh via shwethags)
ALL CHANGES:
+ATLAS-1542 Atlas server fails to start if duplicate types are found during Typesystem bootstrap (svimal2106)
ATLAS-1442 updated pom.xml to change version number to 0.7.1-incubating (mneethiraj)
ATLAS-1432 Responsive Loader and css changes (kevalbhatt via mneethiraj)
ATLAS-1427 update tests for the changes in default SSL protocols support (mneethiraj)
diff --git a/typesystem/src/main/java/org/apache/atlas/typesystem/types/TypeSystem.java b/typesystem/src/main/java/org/apache/atlas/typesystem/types/TypeSystem.java
index 70ba89b..e6c1f99 100755
--- a/typesystem/src/main/java/org/apache/atlas/typesystem/types/TypeSystem.java
+++ b/typesystem/src/main/java/org/apache/atlas/typesystem/types/TypeSystem.java
@@ -405,7 +405,8 @@
for (EnumTypeDefinition eDef : enumDefs) {
assert eDef.name != null;
if (!update && isRegistered(eDef.name)) {
- throw new AtlasException(String.format("Redefinition of type %s not supported", eDef.name));
+ LOG.warn("Found duplicate definition of type {}. Ignoring..", eDef.name);
+ continue;
}
EnumType eT = new EnumType(this, eDef.name, eDef.description, eDef.enumValues);
@@ -415,7 +416,8 @@
for (StructTypeDefinition sDef : structDefs) {
assert sDef.typeName != null;
if (!update && isRegistered(sDef.typeName)) {
- throw new TypeExistsException(String.format("Cannot redefine type %s", sDef.typeName));
+ LOG.warn("Found duplicate definition of type {}. Ignoring..", sDef.typeName);
+ continue;
}
StructType sT = new StructType(this, sDef.typeName, sDef.typeDescription, sDef.attributeDefinitions.length);
structNameToDefMap.put(sDef.typeName, sDef);
@@ -425,7 +427,8 @@
for (HierarchicalTypeDefinition<TraitType> traitDef : traitDefs) {
assert traitDef.typeName != null;
if (!update && isRegistered(traitDef.typeName)) {
- throw new TypeExistsException(String.format("Cannot redefine type %s", traitDef.typeName));
+ LOG.warn("Found duplicate definition of type {}. Ignoring..", traitDef.typeName);
+ continue;
}
TraitType tT = new TraitType(this, traitDef.typeName, traitDef.typeDescription, traitDef.superTypes,
traitDef.attributeDefinitions.length);
@@ -436,7 +439,8 @@
for (HierarchicalTypeDefinition<ClassType> classDef : classDefs) {
assert classDef.typeName != null;
if (!update && isRegistered(classDef.typeName)) {
- throw new TypeExistsException(String.format("Cannot redefine type %s", classDef.typeName));
+ LOG.warn("Found duplicate definition of type {}. Ignoring..", classDef.typeName);
+ continue;
}
ClassType cT = new ClassType(this, classDef.typeName, classDef.typeDescription, classDef.superTypes,