From e9255866b318c9ac111bd3f3771cdc2ac8925b0f Mon Sep 17 00:00:00 2001 From: Paresh Devalia Date: Thu, 6 Aug 2026 10:57:04 +0530 Subject: [PATCH] ATLAS-5014 : Basic Search : excludeHeaderAttributes is true, order of attribute in the response changes Store search attributes in LinkedHashSet so json array order is kept when building attributes.name and attributes.values. Duplicate attribute names are deduped using first-occurrence order. Fixes mismatched column order between request and response for POST /api/atlas/v2/search/basic. --- .../discovery/QuickSearchParameters.java | 12 +++-- .../model/discovery/SearchParameters.java | 9 +++- .../discovery/TestQuickSearchParameters.java | 29 +++++----- .../model/discovery/TestSearchParameters.java | 39 ++++++++++++-- .../discovery/EntityDiscoveryService.java | 10 ++-- .../TableReplicationRequestProcessor.java | 2 +- .../discovery/AtlasDiscoveryServiceTest.java | 54 +++++++++++++++---- .../apache/atlas/web/rest/DiscoveryREST.java | 3 +- .../atlas/web/rest/DiscoveryRESTTest.java | 6 +-- 9 files changed, 119 insertions(+), 45 deletions(-) diff --git a/intg/src/main/java/org/apache/atlas/model/discovery/QuickSearchParameters.java b/intg/src/main/java/org/apache/atlas/model/discovery/QuickSearchParameters.java index 2552a7ce4ce..06a0335a17c 100644 --- a/intg/src/main/java/org/apache/atlas/model/discovery/QuickSearchParameters.java +++ b/intg/src/main/java/org/apache/atlas/model/discovery/QuickSearchParameters.java @@ -20,10 +20,13 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.apache.atlas.SortOrder; import org.apache.atlas.model.discovery.SearchParameters.FilterCriteria; import java.io.Serializable; +import java.util.Collection; +import java.util.LinkedHashSet; import java.util.Set; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; @@ -45,6 +48,7 @@ public class QuickSearchParameters implements Serializable { private boolean excludeDeletedEntities; private int offset; private int limit; + @JsonDeserialize(as = LinkedHashSet.class) private Set attributes; private String sortBy; private SortOrder sortOrder; @@ -56,7 +60,7 @@ public class QuickSearchParameters implements Serializable { public QuickSearchParameters() { } - public QuickSearchParameters(String query, String typeName, FilterCriteria entityFilters, boolean includeSubTypes, boolean excludeDeletedEntities, int offset, int limit, Set attributes, String sortBy, SortOrder sortOrder) { + public QuickSearchParameters(String query, String typeName, FilterCriteria entityFilters, boolean includeSubTypes, boolean excludeDeletedEntities, int offset, int limit, Collection attributes, String sortBy, SortOrder sortOrder) { this.query = query; this.typeName = typeName; this.entityFilters = entityFilters; @@ -64,7 +68,7 @@ public QuickSearchParameters(String query, String typeName, FilterCriteria entit this.excludeDeletedEntities = excludeDeletedEntities; this.offset = offset; this.limit = limit; - this.attributes = attributes; + this.attributes = attributes == null ? null : new LinkedHashSet<>(attributes); this.sortBy = sortBy; this.sortOrder = sortOrder; } @@ -129,8 +133,8 @@ public Set getAttributes() { return attributes; } - public void setAttributes(Set attributes) { - this.attributes = attributes; + public void setAttributes(Collection attributes) { + this.attributes = attributes == null ? null : new LinkedHashSet<>(attributes); } public String getSortBy() { diff --git a/intg/src/main/java/org/apache/atlas/model/discovery/SearchParameters.java b/intg/src/main/java/org/apache/atlas/model/discovery/SearchParameters.java index 5954dd038c2..923eb1633e4 100644 --- a/intg/src/main/java/org/apache/atlas/model/discovery/SearchParameters.java +++ b/intg/src/main/java/org/apache/atlas/model/discovery/SearchParameters.java @@ -22,10 +22,13 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonValue; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.apache.atlas.SortOrder; import java.io.Serializable; +import java.util.Collection; import java.util.HashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -63,6 +66,7 @@ public class SearchParameters implements Serializable { private FilterCriteria entityFilters; private FilterCriteria tagFilters; private FilterCriteria relationshipFilters; + @JsonDeserialize(as = LinkedHashSet.class) private Set attributes; private SortOrder sortOrder; @@ -319,11 +323,12 @@ public Set getAttributes() { /** * Return these attributes in the result response + * Duplicate attribute names are ignored; the first occurrence determines position. * * @param attributes */ - public void setAttributes(Set attributes) { - this.attributes = attributes; + public void setAttributes(Collection attributes) { + this.attributes = attributes == null ? null : new LinkedHashSet<>(attributes); } /** diff --git a/intg/src/test/java/org/apache/atlas/model/discovery/TestQuickSearchParameters.java b/intg/src/test/java/org/apache/atlas/model/discovery/TestQuickSearchParameters.java index 74a715f6174..0f7c091af9e 100644 --- a/intg/src/test/java/org/apache/atlas/model/discovery/TestQuickSearchParameters.java +++ b/intg/src/test/java/org/apache/atlas/model/discovery/TestQuickSearchParameters.java @@ -22,8 +22,9 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import java.util.HashSet; -import java.util.Set; +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; @@ -66,7 +67,7 @@ public void testParameterizedConstructor() { boolean excludeDeletedEntities = true; int offset = 10; int limit = 100; - Set attributes = new HashSet<>(); + List attributes = new ArrayList<>(); attributes.add("attr1"); String sortBy = "name"; SortOrder sortOrder = SortOrder.ASCENDING; @@ -82,7 +83,7 @@ public void testParameterizedConstructor() { assertTrue(params.getExcludeDeletedEntities()); assertEquals(params.getOffset(), offset); assertEquals(params.getLimit(), limit); - assertSame(params.getAttributes(), attributes); + assertEquals(params.getAttributes(), new LinkedHashSet<>(attributes)); assertEquals(params.getSortBy(), sortBy); assertEquals(params.getSortOrder(), sortOrder); } @@ -183,13 +184,13 @@ public void testLimitGetterSetter() { public void testAttributesGetterSetter() { assertNull(searchParameters.getAttributes()); - Set attributes = new HashSet<>(); + List attributes = new ArrayList<>(); attributes.add("name"); attributes.add("description"); attributes.add("owner"); searchParameters.setAttributes(attributes); - assertSame(searchParameters.getAttributes(), attributes); + assertEquals(searchParameters.getAttributes(), new LinkedHashSet<>(attributes)); searchParameters.setAttributes(null); assertNull(searchParameters.getAttributes()); @@ -244,7 +245,7 @@ public void testCompleteParameterConfiguration() { boolean excludeDeletedEntities = true; int offset = 25; int limit = 500; - Set attributes = new HashSet<>(); + List attributes = new ArrayList<>(); attributes.add("name"); attributes.add("qualifiedName"); attributes.add("owner"); @@ -271,7 +272,7 @@ public void testCompleteParameterConfiguration() { assertTrue(searchParameters.getExcludeDeletedEntities()); assertEquals(searchParameters.getOffset(), offset); assertEquals(searchParameters.getLimit(), limit); - assertSame(searchParameters.getAttributes(), attributes); + assertEquals(searchParameters.getAttributes(), new LinkedHashSet<>(attributes)); assertEquals(searchParameters.getSortBy(), sortBy); assertEquals(searchParameters.getSortOrder(), sortOrder); assertTrue(searchParameters.getExcludeHeaderAttributes()); @@ -296,7 +297,7 @@ public void testParameterizedConstructorWithNullValues() { @Test public void testEmptyAttributesSet() { - Set emptyAttributes = new HashSet<>(); + List emptyAttributes = new ArrayList<>(); searchParameters.setAttributes(emptyAttributes); assertNotNull(searchParameters.getAttributes()); @@ -306,15 +307,15 @@ public void testEmptyAttributesSet() { @Test public void testAttributesSetModification() { - Set attributes = new HashSet<>(); + List attributes = new ArrayList<>(); attributes.add("initialAttribute"); searchParameters.setAttributes(attributes); attributes.add("additionalAttribute"); - assertEquals(searchParameters.getAttributes().size(), 2); + assertEquals(searchParameters.getAttributes().size(), 1); assertTrue(searchParameters.getAttributes().contains("initialAttribute")); - assertTrue(searchParameters.getAttributes().contains("additionalAttribute")); + assertFalse(searchParameters.getAttributes().contains("additionalAttribute")); } @Test @@ -413,7 +414,7 @@ public void testComplexFilterCriteria() { @Test public void testAttributesWithVariousTypes() { - Set attributes = new HashSet<>(); + List attributes = new ArrayList<>(); attributes.add("stringAttribute"); attributes.add("numericAttribute"); attributes.add("dateAttribute"); @@ -472,7 +473,7 @@ public void testSearchScenarioWithAllParameters() { searchParameters.setOffset(0); searchParameters.setLimit(50); - Set attributes = new HashSet<>(); + List attributes = new ArrayList<>(); attributes.add("qualifiedName"); attributes.add("owner"); attributes.add("createTime"); diff --git a/intg/src/test/java/org/apache/atlas/model/discovery/TestSearchParameters.java b/intg/src/test/java/org/apache/atlas/model/discovery/TestSearchParameters.java index 53b90a1a0f0..376217f3ab9 100644 --- a/intg/src/test/java/org/apache/atlas/model/discovery/TestSearchParameters.java +++ b/intg/src/test/java/org/apache/atlas/model/discovery/TestSearchParameters.java @@ -20,13 +20,14 @@ import org.apache.atlas.SortOrder; import org.apache.atlas.model.discovery.SearchParameters.FilterCriteria; import org.apache.atlas.model.discovery.SearchParameters.Operator; +import org.apache.atlas.utils.AtlasJson; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.util.ArrayList; -import java.util.HashSet; +import java.util.Arrays; +import java.util.LinkedHashSet; import java.util.List; -import java.util.Set; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; @@ -290,16 +291,24 @@ public void testRelationshipFiltersGetterSetter() { public void testAttributesGetterSetter() { assertNull(searchParameters.getAttributes()); - Set attributes = new HashSet<>(); + List attributes = new ArrayList<>(); attributes.add("name"); attributes.add("description"); searchParameters.setAttributes(attributes); - assertSame(searchParameters.getAttributes(), attributes); + assertEquals(searchParameters.getAttributes(), new LinkedHashSet<>(attributes)); searchParameters.setAttributes(null); assertNull(searchParameters.getAttributes()); } + @Test + public void testAttributesDedupePreservesFirstOccurrenceOrder() { + searchParameters.setAttributes(Arrays.asList("qualifiedName", "createTime", "qualifiedName")); + + assertEquals(searchParameters.getAttributes(), new LinkedHashSet<>(Arrays.asList("qualifiedName", "createTime"))); + assertEquals(new ArrayList<>(searchParameters.getAttributes()), Arrays.asList("qualifiedName", "createTime")); + } + @Test public void testSortByGetterSetter() { assertNull(searchParameters.getSortBy()); @@ -708,7 +717,7 @@ public void testCompleteSearchParametersConfiguration() { searchParameters.setSortBy("createTime"); searchParameters.setSortOrder(SortOrder.DESCENDING); - Set attributes = new HashSet<>(); + List attributes = new ArrayList<>(); attributes.add("qualifiedName"); attributes.add("owner"); searchParameters.setAttributes(attributes); @@ -736,6 +745,26 @@ public void testCompleteSearchParametersConfiguration() { assertEquals(searchParameters.getSortBy(), "createTime"); assertEquals(searchParameters.getSortOrder(), SortOrder.DESCENDING); assertEquals(searchParameters.getAttributes().size(), 2); + assertEquals(new ArrayList<>(searchParameters.getAttributes()).get(0), "qualifiedName"); + assertEquals(new ArrayList<>(searchParameters.getAttributes()).get(1), "owner"); assertNotNull(searchParameters.getEntityFilters()); } + + @Test + public void testAttributesJsonDeserializationPreservesOrder() { + String json = "{\"typeName\":\"hive_table\",\"attributes\":[\"qualifiedName\",\"createTime\"]}"; + + SearchParameters params = AtlasJson.fromJson(json, SearchParameters.class); + + assertEquals(params.getAttributes(), new LinkedHashSet<>(Arrays.asList("qualifiedName", "createTime"))); + } + + @Test + public void testAttributesJsonDeserializationDedupes() { + String json = "{\"typeName\":\"hive_table\",\"attributes\":[\"qualifiedName\",\"createTime\",\"qualifiedName\"]}"; + + SearchParameters params = AtlasJson.fromJson(json, SearchParameters.class); + + assertEquals(params.getAttributes(), new LinkedHashSet<>(Arrays.asList("qualifiedName", "createTime"))); + } } diff --git a/repository/src/main/java/org/apache/atlas/discovery/EntityDiscoveryService.java b/repository/src/main/java/org/apache/atlas/discovery/EntityDiscoveryService.java index 410a42f1c4c..f0413ad3925 100644 --- a/repository/src/main/java/org/apache/atlas/discovery/EntityDiscoveryService.java +++ b/repository/src/main/java/org/apache/atlas/discovery/EntityDiscoveryService.java @@ -101,6 +101,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -652,7 +653,10 @@ public AtlasSearchResult searchRelatedEntities(String guid, String relation, boo AtlasVertex vertex = entityRetriever.getEntityVertex(endVertexGuid); if (vertex != null) { - AtlasEntityHeader entity = entityRetriever.toAtlasEntityHeader(vertex, searchParameters.getAttributes()); + Set requestedAttributes = CollectionUtils.isEmpty(searchParameters.getAttributes()) + ? Collections.emptySet() + : searchParameters.getAttributes(); + AtlasEntityHeader entity = entityRetriever.toAtlasEntityHeader(vertex, requestedAttributes); if (searchParameters.getIncludeClassificationAttributes()) { entity.setClassifications(entityRetriever.getAllClassifications(vertex)); @@ -990,7 +994,7 @@ private AtlasSearchResult searchWithSearchContext(SearchContext searchContext) t Collection> values = new ArrayList<>(); AtlasSearchResult.AttributeSearchResult attributeSearchResult = new AtlasSearchResult.AttributeSearchResult(); - attributeSearchResult.setName(new ArrayList<>(attributes)); + attributeSearchResult.setName(attributes == null ? null : new ArrayList<>(attributes)); for (AtlasVertex vertex : resultList) { List row = new ArrayList<>(); @@ -1016,7 +1020,7 @@ private AtlasSearchResult searchWithSearchContext(SearchContext searchContext) t // By default any attribute that shows up in the search parameter should be sent back in the response // If additional values are requested then the entityAttributes will be a superset of the all search attributes // and the explicitly requested attribute(s) - Set resultAttributes = new HashSet<>(); + Set resultAttributes = new LinkedHashSet<>(); Set entityAttributes = new HashSet<>(); if (CollectionUtils.isNotEmpty(searchParameters.getAttributes())) { diff --git a/repository/src/main/java/org/apache/atlas/repository/impexp/TableReplicationRequestProcessor.java b/repository/src/main/java/org/apache/atlas/repository/impexp/TableReplicationRequestProcessor.java index 828eabb1622..7dd0ba3b379 100644 --- a/repository/src/main/java/org/apache/atlas/repository/impexp/TableReplicationRequestProcessor.java +++ b/repository/src/main/java/org/apache/atlas/repository/impexp/TableReplicationRequestProcessor.java @@ -170,7 +170,7 @@ private SearchParameters getSearchParameters(String dbName, String sourceCluster parameters.setExcludeDeletedEntities(false); parameters.setTypeName(TYPE_HIVE_TABLE); parameters.setExcludeDeletedEntities(true); - parameters.setAttributes(new HashSet<>(Collections.singleton(AtlasImportRequest.OPTION_KEY_REPLICATED_FROM))); + parameters.setAttributes(Collections.singleton(AtlasImportRequest.OPTION_KEY_REPLICATED_FROM)); parameters.setQuery(query); return parameters; diff --git a/repository/src/test/java/org/apache/atlas/discovery/AtlasDiscoveryServiceTest.java b/repository/src/test/java/org/apache/atlas/discovery/AtlasDiscoveryServiceTest.java index 9a324fa2298..987440fdd13 100644 --- a/repository/src/test/java/org/apache/atlas/discovery/AtlasDiscoveryServiceTest.java +++ b/repository/src/test/java/org/apache/atlas/discovery/AtlasDiscoveryServiceTest.java @@ -45,10 +45,10 @@ import javax.inject.Inject; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -891,7 +891,7 @@ public void excludeHeaderAttributesStringAttr() throws AtlasBaseException { params.setExcludeHeaderAttributes(true); params.setEntityFilters(filterCriteria); params.setSortBy("name"); - params.setAttributes(new HashSet<>(Collections.singletonList("name"))); + params.setAttributes(Collections.singletonList("name")); params.setLimit(1); AtlasSearchResult searchResult = discoveryService.searchWithParameters(params); @@ -903,6 +903,40 @@ public void excludeHeaderAttributesStringAttr() throws AtlasBaseException { assertSearchResult(searchResult, expected); } + @Test + public void excludeHeaderAttributesPreservesAttributeOrder() throws AtlasBaseException { + SearchParameters params = new SearchParameters(); + + params.setTypeName(HIVE_TABLE_TYPE); + params.setExcludeHeaderAttributes(true); + params.setAttributes(Arrays.asList("qualifiedName", "createTime")); + params.setLimit(25); + + AtlasSearchResult searchResult = discoveryService.searchWithParameters(params); + + assertNotNull(searchResult.getAttributes()); + assertEquals(searchResult.getAttributes().getName(), Arrays.asList("qualifiedName", "createTime")); + assertEquals(new ArrayList<>(searchResult.getSearchParameters().getAttributes()), + Arrays.asList("qualifiedName", "createTime")); + } + + @Test + public void excludeHeaderAttributesDedupesAttributeNames() throws AtlasBaseException { + SearchParameters params = new SearchParameters(); + + params.setTypeName(HIVE_TABLE_TYPE); + params.setExcludeHeaderAttributes(true); + params.setAttributes(Arrays.asList("qualifiedName", "createTime", "qualifiedName")); + params.setLimit(25); + + AtlasSearchResult searchResult = discoveryService.searchWithParameters(params); + + assertNotNull(searchResult.getAttributes()); + assertEquals(searchResult.getAttributes().getName(), Arrays.asList("qualifiedName", "createTime")); + assertEquals(new ArrayList<>(searchResult.getSearchParameters().getAttributes()), + Arrays.asList("qualifiedName", "createTime")); + } + @Test public void excludeHeaderAttributesRelationAttr() throws AtlasBaseException { SearchParameters.FilterCriteria filterCriteria = getSingleFilterCondition("name", Operator.EQ, "time_dim"); @@ -911,7 +945,7 @@ public void excludeHeaderAttributesRelationAttr() throws AtlasBaseException { params.setTypeName(HIVE_TABLE_TYPE); params.setExcludeHeaderAttributes(true); params.setEntityFilters(filterCriteria); - params.setAttributes(new HashSet<>(Arrays.asList("name", "db"))); + params.setAttributes(Arrays.asList("name", "db")); params.setLimit(1); AtlasSearchResult searchResult = discoveryService.searchWithParameters(params); @@ -928,7 +962,7 @@ public void excludeHeaderAttributesSystemAttr() throws AtlasBaseException { params.setTypeName(HIVE_TABLE_TYPE); params.setExcludeHeaderAttributes(true); - params.setAttributes(new HashSet<>(Arrays.asList("name", "__state"))); + params.setAttributes(Arrays.asList("name", "__state")); params.setLimit(1); params.setEntityFilters(filterCriteria); params.setSortBy("name"); @@ -948,7 +982,7 @@ public void excludeHeaderAttributesAllEntityTypeSysAttr() throws AtlasBaseExcept params.setTypeName(HIVE_TABLE_TYPE + "," + ALL_ENTITY_TYPES); params.setExcludeHeaderAttributes(true); - params.setAttributes(new HashSet<>(Collections.singletonList("__state"))); + params.setAttributes(Collections.singletonList("__state")); params.setLimit(2); AtlasSearchResult searchResult = discoveryService.searchWithParameters(params); @@ -966,7 +1000,7 @@ public void excludeHeaderAttributesAllEntityTypeSysAttrs() throws AtlasBaseExcep params.setTypeName(HIVE_TABLE_TYPE + "," + ALL_ENTITY_TYPES); params.setExcludeHeaderAttributes(true); - params.setAttributes(new HashSet<>(Arrays.asList("__state", "__guid"))); + params.setAttributes(Arrays.asList("__state", "__guid")); params.setLimit(2); AtlasSearchResult searchResult = discoveryService.searchWithParameters(params); @@ -979,7 +1013,7 @@ public void excludeHeaderAttributesAllEntityType() throws AtlasBaseException { params.setTypeName(HIVE_TABLE_TYPE + "," + ALL_ENTITY_TYPES); params.setExcludeHeaderAttributes(true); - params.setAttributes(new HashSet<>(Collections.singletonList("name"))); + params.setAttributes(Collections.singletonList("name")); params.setLimit(1); discoveryService.searchWithParameters(params); @@ -991,7 +1025,7 @@ public void excludeHeaderAttributesInvalidAttr() throws AtlasBaseException { params.setTypeName(HIVE_TABLE_TYPE); params.setExcludeHeaderAttributes(true); - params.setAttributes(new HashSet<>(Collections.singletonList("name1"))); + params.setAttributes(Collections.singletonList("name1")); params.setLimit(1); discoveryService.searchWithParameters(params); @@ -1382,10 +1416,10 @@ private void assertSearchResult(AtlasSearchResult searchResult, AtlasSearchResul assertNotNull(searchResult); AtlasSearchResult.AttributeSearchResult result = searchResult.getAttributes(); assertNotNull(result); - assertTrue(result.getName().containsAll(expected.getName())); + assertEquals(result.getName(), expected.getName()); int i = 0; for (List value : result.getValues()) { - assertTrue(value.containsAll(expected.getValues().get(i))); + assertEquals(value, expected.getValues().get(i)); i++; } } diff --git a/webapp/src/main/java/org/apache/atlas/web/rest/DiscoveryREST.java b/webapp/src/main/java/org/apache/atlas/web/rest/DiscoveryREST.java index 874d43d6995..18acf54bcd8 100644 --- a/webapp/src/main/java/org/apache/atlas/web/rest/DiscoveryREST.java +++ b/webapp/src/main/java/org/apache/atlas/web/rest/DiscoveryREST.java @@ -74,7 +74,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; import static org.apache.atlas.model.discovery.AtlasSearchResult.AtlasQueryType.BASIC; import static org.apache.atlas.model.discovery.AtlasSearchResult.AtlasQueryType.DSL; @@ -535,7 +534,7 @@ public AtlasSearchResult relationSearch(@QueryParam("relationshipName") String r @Timed public AtlasSearchResult searchRelatedEntities(@QueryParam("guid") String guid, @QueryParam("relation") String relation, - @QueryParam("attributes") Set attributes, + @QueryParam("attributes") List attributes, @QueryParam("sortBy") String sortByAttribute, @QueryParam("sortOrder") SortOrder sortOrder, @QueryParam("excludeDeletedEntities") boolean excludeDeletedEntities, diff --git a/webapp/src/test/java/org/apache/atlas/web/rest/DiscoveryRESTTest.java b/webapp/src/test/java/org/apache/atlas/web/rest/DiscoveryRESTTest.java index c688f31107d..5d4600e988e 100644 --- a/webapp/src/test/java/org/apache/atlas/web/rest/DiscoveryRESTTest.java +++ b/webapp/src/test/java/org/apache/atlas/web/rest/DiscoveryRESTTest.java @@ -42,10 +42,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Set; import static org.apache.atlas.common.TestUtility.generateString; import static org.apache.atlas.model.discovery.AtlasSearchResult.AtlasQueryType.BASIC; @@ -492,7 +490,7 @@ public void testRelationSearch_DefaultDisabled_EmptyTypeName_ThrowsException() { public void testSearchRelatedEntities_Success() throws Exception { String guid = "1234-5678"; String relation = "relatedTo"; - Set attributes = new HashSet<>(Arrays.asList("name", "description")); + List attributes = Arrays.asList("name", "description"); String sortByAttribute = "name"; SortOrder sortOrder = SortOrder.ASCENDING; boolean excludeDeletedEntities = true; @@ -520,7 +518,7 @@ public void testSearchRelatedEntities_InvalidQueryLength_ThrowsException() { // Query Length exceeds the Configured Query Limit, Causes validation to Fail String guid = generateString(AtlasConfiguration.QUERY_PARAM_MAX_LENGTH.getInt() + 1, 'a'); // too long String relation = "relatedTo"; - Set attributes = new HashSet<>(Arrays.asList("name", "description")); + List attributes = Arrays.asList("name", "description"); String sortByAttribute = "name"; SortOrder sortOrder = SortOrder.ASCENDING; boolean excludeDeletedEntities = true;