You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2017/01/05 21:12:47 UTC
incubator-atlas git commit: ATLAS-1408: added validation to prevent
creating types with . (dot) in name (ashutoshm via mneethiraj)
Repository: incubator-atlas
Updated Branches:
refs/heads/master 03857baa6 -> 407ff00c1
ATLAS-1408: added validation to prevent creating types with . (dot) in name (ashutoshm via mneethiraj)
Signed-off-by: Madhan Neethiraj <ma...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/407ff00c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/407ff00c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/407ff00c
Branch: refs/heads/master
Commit: 407ff00c1b51cf164dffc356526e8966acee5dc8
Parents: 03857ba
Author: ashutoshm <am...@hortonworks.com>
Authored: Thu Jan 5 11:50:59 2017 -0800
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Thu Jan 5 13:02:48 2017 -0800
----------------------------------------------------------------------
.../java/org/apache/atlas/AtlasErrorCode.java | 1 +
.../org/apache/atlas/type/AtlasTypeUtil.java | 21 ++++++++++++++
release-log.txt | 1 +
.../graph/v1/AtlasClassificationDefStoreV1.java | 9 ++++++
.../store/graph/v1/AtlasEntityDefStoreV1.java | 9 ++++++
.../store/graph/v1/AtlasEnumDefStoreV1.java | 9 ++++++
.../store/graph/v1/AtlasStructDefStoreV1.java | 8 ++++++
.../atlas/services/DefaultMetadataService.java | 30 ++++++++++++++++++--
.../service/DefaultMetadataServiceTest.java | 18 +++++++++++-
9 files changed, 103 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/407ff00c/intg/src/main/java/org/apache/atlas/AtlasErrorCode.java
----------------------------------------------------------------------
diff --git a/intg/src/main/java/org/apache/atlas/AtlasErrorCode.java b/intg/src/main/java/org/apache/atlas/AtlasErrorCode.java
index 4060b85..f026ec6 100644
--- a/intg/src/main/java/org/apache/atlas/AtlasErrorCode.java
+++ b/intg/src/main/java/org/apache/atlas/AtlasErrorCode.java
@@ -51,6 +51,7 @@ public enum AtlasErrorCode {
PATCH_NOT_APPLICABLE_FOR_TYPE(400, "ATLAS40022E", "{0} - invalid patch for type {1}"),
PATCH_FOR_UNKNOWN_TYPE(400, "ATLAS40023E", "{0} - patch references unknown type {1}"),
PATCH_INVALID_DATA(400, "ATLAS40024E", "{0} - patch data is invalid for type {1}"),
+ TYPE_NAME_INVALID_FORMAT(400, "ATLAS40025E", "{0}: invalid name for {1}. Only alphanumeric and '_' are allowed."),
// All Not found enums go here
TYPE_NAME_NOT_FOUND(404, "ATLAS4041E", "Given typename {0} was invalid"),
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/407ff00c/intg/src/main/java/org/apache/atlas/type/AtlasTypeUtil.java
----------------------------------------------------------------------
diff --git a/intg/src/main/java/org/apache/atlas/type/AtlasTypeUtil.java b/intg/src/main/java/org/apache/atlas/type/AtlasTypeUtil.java
index b0a4e07..19553bf 100644
--- a/intg/src/main/java/org/apache/atlas/type/AtlasTypeUtil.java
+++ b/intg/src/main/java/org/apache/atlas/type/AtlasTypeUtil.java
@@ -19,6 +19,8 @@ package org.apache.atlas.type;
import com.google.common.collect.ImmutableSet;
+import org.apache.atlas.AtlasErrorCode;
+import org.apache.atlas.exception.AtlasBaseException;
import org.apache.atlas.model.typedef.AtlasBaseTypeDef;
import org.apache.atlas.model.typedef.AtlasClassificationDef;
import org.apache.atlas.model.typedef.AtlasEntityDef;
@@ -40,6 +42,8 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Arrays;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import static org.apache.atlas.model.typedef.AtlasBaseTypeDef.ATLAS_TYPE_ARRAY_PREFIX;
import static org.apache.atlas.model.typedef.AtlasBaseTypeDef.ATLAS_TYPE_ARRAY_SUFFIX;
@@ -52,6 +56,9 @@ import static org.apache.atlas.model.typedef.AtlasBaseTypeDef.ATLAS_TYPE_MAP_SUF
*/
public class AtlasTypeUtil {
private static final Set<String> ATLAS_BUILTIN_TYPENAMES = new HashSet<>();
+ private static final String NAME_REGEX = "[a-zA-z][a-zA-Z0-9_ ]*";
+ private static final Pattern NAME_PATTERN = Pattern.compile(NAME_REGEX);
+
static {
Collections.addAll(ATLAS_BUILTIN_TYPENAMES, AtlasBaseTypeDef.ATLAS_BUILTIN_TYPES);
@@ -80,6 +87,20 @@ public class AtlasTypeUtil {
}
+ public static boolean isValidTypeName(String typeName) {
+ Matcher m = NAME_PATTERN.matcher(typeName);
+
+ return m.matches();
+ }
+
+ public static void validateType(AtlasBaseTypeDef typeDef) throws AtlasBaseException {
+ String typeName = typeDef.getName();
+
+ if (!isValidTypeName(typeName)) {
+ throw new AtlasBaseException(AtlasErrorCode.TYPE_NAME_INVALID_FORMAT, typeName, typeDef.getCategory().name());
+ }
+ }
+
public static String getStringValue(Map map, Object key) {
Object ret = map != null ? map.get(key) : null;
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/407ff00c/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index a2a2b45..8887247 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -9,6 +9,7 @@ ATLAS-1060 Add composite indexes for exact match performance improvements for al
ATLAS-1127 Modify creation and modification timestamps to Date instead of Long(sumasai)
ALL CHANGES:
+ATLAS-1408 added validation to prevent creating types with . (dot) in name (ashutoshm via mneethiraj)
ATLAS-1277 Add feather use 'order by ' in the DSL search (zhangqiang2 via sumasai)
ATLAS-1379 Avoid object query overhead when report query selects class type alias (guptaneeru via dkantor)
ATLAS-1419 update entity-update API impl to preserve value of entity attribute when no value is provided
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/407ff00c/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasClassificationDefStoreV1.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasClassificationDefStoreV1.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasClassificationDefStoreV1.java
index 936dd4f..f9c17fd 100644
--- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasClassificationDefStoreV1.java
+++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasClassificationDefStoreV1.java
@@ -30,6 +30,7 @@ import org.apache.atlas.repository.util.FilterUtil;
import org.apache.atlas.type.AtlasClassificationType;
import org.apache.atlas.type.AtlasType;
import org.apache.atlas.type.AtlasTypeRegistry;
+import org.apache.atlas.type.AtlasTypeUtil;
import org.apache.atlas.typesystem.types.DataTypes.TypeCategory;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
@@ -56,6 +57,8 @@ public class AtlasClassificationDefStoreV1 extends AtlasAbstractDefStoreV1 imple
LOG.debug("==> AtlasClassificationDefStoreV1.preCreate({})", classificationDef);
}
+ AtlasTypeUtil.validateType(classificationDef);
+
AtlasType type = typeRegistry.getType(classificationDef.getName());
if (type.getTypeCategory() != org.apache.atlas.model.TypeCategory.CLASSIFICATION) {
@@ -174,6 +177,8 @@ public class AtlasClassificationDefStoreV1 extends AtlasAbstractDefStoreV1 imple
LOG.debug("==> AtlasClassificationDefStoreV1.update({})", classifiDef);
}
+ AtlasTypeUtil.validateType(classifiDef);
+
AtlasClassificationDef ret = StringUtils.isNotBlank(classifiDef.getGuid())
? updateByGuid(classifiDef.getGuid(), classifiDef) : updateByName(classifiDef.getName(), classifiDef);
@@ -191,6 +196,8 @@ public class AtlasClassificationDefStoreV1 extends AtlasAbstractDefStoreV1 imple
LOG.debug("==> AtlasClassificationDefStoreV1.updateByName({}, {})", name, classificationDef);
}
+ AtlasTypeUtil.validateType(classificationDef);
+
AtlasType type = typeRegistry.getType(classificationDef.getName());
if (type.getTypeCategory() != org.apache.atlas.model.TypeCategory.CLASSIFICATION) {
@@ -221,6 +228,8 @@ public class AtlasClassificationDefStoreV1 extends AtlasAbstractDefStoreV1 imple
LOG.debug("==> AtlasClassificationDefStoreV1.updateByGuid({})", guid);
}
+ AtlasTypeUtil.validateType(classificationDef);
+
AtlasType type = typeRegistry.getTypeByGuid(guid);
if (type.getTypeCategory() != org.apache.atlas.model.TypeCategory.CLASSIFICATION) {
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/407ff00c/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityDefStoreV1.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityDefStoreV1.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityDefStoreV1.java
index c7f6cdf..32a6d83 100644
--- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityDefStoreV1.java
+++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEntityDefStoreV1.java
@@ -29,6 +29,7 @@ import org.apache.atlas.repository.util.FilterUtil;
import org.apache.atlas.type.AtlasEntityType;
import org.apache.atlas.type.AtlasType;
import org.apache.atlas.type.AtlasTypeRegistry;
+import org.apache.atlas.type.AtlasTypeUtil;
import org.apache.atlas.typesystem.types.DataTypes.TypeCategory;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
@@ -55,6 +56,8 @@ public class AtlasEntityDefStoreV1 extends AtlasAbstractDefStoreV1 implements At
LOG.debug("==> AtlasEntityDefStoreV1.preCreate({})", entityDef);
}
+ AtlasTypeUtil.validateType(entityDef);
+
AtlasType type = typeRegistry.getType(entityDef.getName());
if (type.getTypeCategory() != org.apache.atlas.model.TypeCategory.ENTITY) {
@@ -173,6 +176,8 @@ public class AtlasEntityDefStoreV1 extends AtlasAbstractDefStoreV1 implements At
LOG.debug("==> AtlasEntityDefStoreV1.update({})", entityDef);
}
+ AtlasTypeUtil.validateType(entityDef);
+
AtlasEntityDef ret = StringUtils.isNotBlank(entityDef.getGuid()) ? updateByGuid(entityDef.getGuid(), entityDef)
: updateByName(entityDef.getName(), entityDef);
@@ -189,6 +194,8 @@ public class AtlasEntityDefStoreV1 extends AtlasAbstractDefStoreV1 implements At
LOG.debug("==> AtlasEntityDefStoreV1.updateByName({}, {})", name, entityDef);
}
+ AtlasTypeUtil.validateType(entityDef);
+
AtlasType type = typeRegistry.getType(entityDef.getName());
if (type.getTypeCategory() != org.apache.atlas.model.TypeCategory.ENTITY) {
@@ -219,6 +226,8 @@ public class AtlasEntityDefStoreV1 extends AtlasAbstractDefStoreV1 implements At
LOG.debug("==> AtlasEntityDefStoreV1.updateByGuid({})", guid);
}
+ AtlasTypeUtil.validateType(entityDef);
+
AtlasType type = typeRegistry.getTypeByGuid(guid);
if (type.getTypeCategory() != org.apache.atlas.model.TypeCategory.ENTITY) {
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/407ff00c/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEnumDefStoreV1.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEnumDefStoreV1.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEnumDefStoreV1.java
index 97542d5..fccbeba 100644
--- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEnumDefStoreV1.java
+++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasEnumDefStoreV1.java
@@ -28,6 +28,7 @@ import org.apache.atlas.repository.graphdb.AtlasVertex;
import org.apache.atlas.repository.store.graph.AtlasEnumDefStore;
import org.apache.atlas.repository.util.FilterUtil;
import org.apache.atlas.type.AtlasTypeRegistry;
+import org.apache.atlas.type.AtlasTypeUtil;
import org.apache.atlas.typesystem.types.DataTypes.TypeCategory;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -54,6 +55,8 @@ public class AtlasEnumDefStoreV1 extends AtlasAbstractDefStoreV1 implements Atla
LOG.debug("==> AtlasEnumDefStoreV1.create({})", enumDef);
}
+ AtlasTypeUtil.validateType(enumDef);
+
AtlasVertex vertex = typeDefStore.findTypeVertexByName(enumDef.getName());
if (vertex != null) {
@@ -143,6 +146,8 @@ public class AtlasEnumDefStoreV1 extends AtlasAbstractDefStoreV1 implements Atla
LOG.debug("==> AtlasEnumDefStoreV1.update({})", enumDef);
}
+ AtlasTypeUtil.validateType(enumDef);
+
AtlasEnumDef ret = StringUtils.isNotBlank(enumDef.getGuid()) ? updateByGuid(enumDef.getGuid(), enumDef)
: updateByName(enumDef.getName(), enumDef);
@@ -159,6 +164,8 @@ public class AtlasEnumDefStoreV1 extends AtlasAbstractDefStoreV1 implements Atla
LOG.debug("==> AtlasEnumDefStoreV1.updateByName({}, {})", name, enumDef);
}
+ AtlasTypeUtil.validateType(enumDef);
+
AtlasVertex vertex = typeDefStore.findTypeVertexByNameAndCategory(name, TypeCategory.ENUM);
if (vertex == null) {
@@ -184,6 +191,8 @@ public class AtlasEnumDefStoreV1 extends AtlasAbstractDefStoreV1 implements Atla
LOG.debug("==> AtlasEnumDefStoreV1.updateByGuid({})", guid);
}
+ AtlasTypeUtil.validateType(enumDef);
+
AtlasVertex vertex = typeDefStore.findTypeVertexByGuidAndCategory(guid, TypeCategory.ENUM);
if (vertex == null) {
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/407ff00c/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasStructDefStoreV1.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasStructDefStoreV1.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasStructDefStoreV1.java
index ee36182..e780dc1 100644
--- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasStructDefStoreV1.java
+++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasStructDefStoreV1.java
@@ -67,6 +67,8 @@ public class AtlasStructDefStoreV1 extends AtlasAbstractDefStoreV1 implements At
LOG.debug("==> AtlasStructDefStoreV1.preCreate({})", structDef);
}
+ AtlasTypeUtil.validateType(structDef);
+
AtlasType type = typeRegistry.getType(structDef.getName());
if (type.getTypeCategory() != org.apache.atlas.model.TypeCategory.STRUCT) {
@@ -184,6 +186,8 @@ public class AtlasStructDefStoreV1 extends AtlasAbstractDefStoreV1 implements At
LOG.debug("==> AtlasStructDefStoreV1.update({})", structDef);
}
+ AtlasTypeUtil.validateType(structDef);
+
AtlasStructDef ret = StringUtils.isNotBlank(structDef.getGuid()) ? updateByGuid(structDef.getGuid(), structDef)
: updateByName(structDef.getName(), structDef);
@@ -200,6 +204,8 @@ public class AtlasStructDefStoreV1 extends AtlasAbstractDefStoreV1 implements At
LOG.debug("==> AtlasStructDefStoreV1.updateByName({}, {})", name, structDef);
}
+ AtlasTypeUtil.validateType(structDef);
+
AtlasType type = typeRegistry.getType(structDef.getName());
if (type.getTypeCategory() != org.apache.atlas.model.TypeCategory.STRUCT) {
@@ -230,6 +236,8 @@ public class AtlasStructDefStoreV1 extends AtlasAbstractDefStoreV1 implements At
LOG.debug("==> AtlasStructDefStoreV1.updateByGuid({})", guid);
}
+ AtlasTypeUtil.validateType(structDef);
+
AtlasType type = typeRegistry.getTypeByGuid(guid);
if (type.getTypeCategory() != org.apache.atlas.model.TypeCategory.STRUCT) {
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/407ff00c/repository/src/main/java/org/apache/atlas/services/DefaultMetadataService.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/services/DefaultMetadataService.java b/repository/src/main/java/org/apache/atlas/services/DefaultMetadataService.java
index a58bd75..edd12ab 100755
--- a/repository/src/main/java/org/apache/atlas/services/DefaultMetadataService.java
+++ b/repository/src/main/java/org/apache/atlas/services/DefaultMetadataService.java
@@ -40,6 +40,7 @@ import org.apache.atlas.repository.RepositoryException;
import org.apache.atlas.repository.audit.EntityAuditRepository;
import org.apache.atlas.repository.graph.GraphHelper;
import org.apache.atlas.repository.typestore.ITypeStore;
+import org.apache.atlas.type.AtlasTypeUtil;
import org.apache.atlas.typesystem.IStruct;
import org.apache.atlas.typesystem.ITypedReferenceableInstance;
import org.apache.atlas.typesystem.ITypedStruct;
@@ -55,8 +56,11 @@ import org.apache.atlas.typesystem.persistence.ReferenceableInstance;
import org.apache.atlas.typesystem.types.AttributeInfo;
import org.apache.atlas.typesystem.types.ClassType;
import org.apache.atlas.typesystem.types.DataTypes;
+import org.apache.atlas.typesystem.types.EnumTypeDefinition;
+import org.apache.atlas.typesystem.types.HierarchicalTypeDefinition;
import org.apache.atlas.typesystem.types.IDataType;
import org.apache.atlas.typesystem.types.Multiplicity;
+import org.apache.atlas.typesystem.types.StructTypeDefinition;
import org.apache.atlas.typesystem.types.TraitType;
import org.apache.atlas.typesystem.types.TypeSystem;
import org.apache.atlas.typesystem.types.cache.TypeCache;
@@ -213,14 +217,36 @@ public class DefaultMetadataService implements MetadataService, ActiveStateChang
return createOrUpdateTypes(typeDefinition, true);
}
- private TypesDef validateTypeDefinition(String typeDefinition) {
+ private TypesDef validateTypeDefinition(String typeDefinition) throws AtlasException {
try {
TypesDef typesDef = TypesSerialization.fromJson(typeDefinition);
if (typesDef.isEmpty()) {
throw new IllegalArgumentException("Invalid type definition");
}
+
+ for (HierarchicalTypeDefinition<ClassType> t : typesDef.classTypesAsJavaList()) {
+ if (!AtlasTypeUtil.isValidTypeName(t.typeName))
+ throw new AtlasException("Only characters, numbers and '_' are allowed in class names. " + t.toString());
+ }
+
+ for (StructTypeDefinition t : typesDef.structTypesAsJavaList()) {
+ if (!AtlasTypeUtil.isValidTypeName(t.typeName))
+ throw new AtlasException("Only characters, numbers and '_' are allowed in struct names. " + t.toString());
+ }
+
+ for (EnumTypeDefinition t : typesDef.enumTypesAsJavaList()) {
+ if (!AtlasTypeUtil.isValidTypeName(t.name))
+ throw new AtlasException("Only characters, numbers and '_' are allowed in enum names. " + t.toString());
+ }
+
+ for (HierarchicalTypeDefinition<TraitType> t : typesDef.traitTypesAsJavaList()) {
+ if (!AtlasTypeUtil.isValidTypeName(t.typeName))
+ throw new AtlasException("Only characters, numbers and '_' are allowed in trait names. " + t.toString());
+ }
+
return typesDef;
- } catch (Exception e) {
+ }
+ catch (Exception e) {
LOG.error("Unable to deserialize json={}", typeDefinition, e);
throw new IllegalArgumentException("Unable to deserialize json " + typeDefinition, e);
}
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/407ff00c/repository/src/test/java/org/apache/atlas/service/DefaultMetadataServiceTest.java
----------------------------------------------------------------------
diff --git a/repository/src/test/java/org/apache/atlas/service/DefaultMetadataServiceTest.java b/repository/src/test/java/org/apache/atlas/service/DefaultMetadataServiceTest.java
index a0ca7b7..4b500ff 100644
--- a/repository/src/test/java/org/apache/atlas/service/DefaultMetadataServiceTest.java
+++ b/repository/src/test/java/org/apache/atlas/service/DefaultMetadataServiceTest.java
@@ -202,7 +202,7 @@ public class DefaultMetadataServiceTest {
String arrayAttrName = randomStrWithReservedChars();
String mapAttrName = randomStrWithReservedChars();
HierarchicalTypeDefinition<ClassType> typeDefinition =
- createClassTypeDef(randomStrWithReservedChars(), ImmutableSet.<String>of(),
+ createClassTypeDef("test_type_"+ RandomStringUtils.randomAlphanumeric(10), ImmutableSet.<String>of(),
createOptionalAttrDef(strAttrName, DataTypes.STRING_TYPE),
new AttributeDefinition(arrayAttrName, DataTypes.arrayTypeName(DataTypes.STRING_TYPE.getName()),
Multiplicity.OPTIONAL, false, null),
@@ -1145,6 +1145,22 @@ public class DefaultMetadataServiceTest {
}
@Test
+ public void testTypeWithDotsCreationShouldNotBeCreated() throws AtlasException, JSONException {
+ String typeName = "test_.v1_type_"+ RandomStringUtils.randomAlphanumeric(10);
+ HierarchicalTypeDefinition<ClassType> typeDef = TypesUtil.createClassTypeDef(
+ typeName, ImmutableSet.<String>of(),
+ TypesUtil.createUniqueRequiredAttrDef("test_type_attribute", DataTypes.STRING_TYPE));
+ TypesDef typesDef = new TypesDef(typeDef, false);
+
+ try {
+ metadataService.createType(TypesSerialization.toJson(typesDef));
+ fail("Expected IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ //expected
+ }
+ }
+
+ @Test
public void testAuditEventsInvalidParams() throws Exception {
//entity id can't be null
try {