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 36b7f8c..128cdbf 100644
--- a/repository/src/main/java/org/apache/atlas/discovery/EntityDiscoveryService.java
+++ b/repository/src/main/java/org/apache/atlas/discovery/EntityDiscoveryService.java
@@ -437,15 +437,6 @@
         AtlasEntityType type            = typeRegistry.getEntityTypeByName(typeName);
         Set<String>     typeAndSubTypes = type != null ? type.getTypeAndAllSubTypes() : null;
 
-        // adding debug info to investigate unit test failure in jenkins
-        // EntityDiscoveryServiceTest.getSubTypeForTypeWithSubTypes_ReturnsOrClause
-        if (StringUtils.isNotEmpty(typeName) && type != null) {
-            LOG.info("Getting type and subTypes for type name: {}, AtlasType: {}", typeName, type.getEntityDef().toString());
-            LOG.info("Type and subTypes list: {}", StringUtils.join(typeAndSubTypes, " "));
-            LOG.info("Maximum Types Count: {}", maxTypesCountInIdxQuery);
-        }
-
-
         if(CollectionUtils.isNotEmpty(typeAndSubTypes) && typeAndSubTypes.size() <= maxTypesCountInIdxQuery) {
             return String.format("(%s)", StringUtils.join(typeAndSubTypes, " "));
         }
diff --git a/repository/src/test/java/org/apache/atlas/services/EntityDiscoveryServiceTest.java b/repository/src/test/java/org/apache/atlas/services/EntityDiscoveryServiceTest.java
index f8fb731..5d5b043 100644
--- a/repository/src/test/java/org/apache/atlas/services/EntityDiscoveryServiceTest.java
+++ b/repository/src/test/java/org/apache/atlas/services/EntityDiscoveryServiceTest.java
@@ -97,10 +97,11 @@
     public void getSubTypeForTypeWithSubTypes_ReturnsOrClause() throws Exception {
         String s = invokeGetSubTypesForType(TEST_TYPE_WITH_SUB_TYPES, maxTypesCountInIdxQuery);
 
-        assertTrue(s.startsWith("(" + TEST_TYPE_WITH_SUB_TYPES));
-        assertTrue(s.contains(" " + TEST_TYPE1));
-        assertTrue(s.contains(" " + TEST_TYPE2));
-        assertTrue(s.contains(" " + TEST_TYPE3));
+        assertTrue(s.startsWith("("));
+        assertTrue(s.contains(TEST_TYPE_WITH_SUB_TYPES));
+        assertTrue(s.contains(TEST_TYPE1));
+        assertTrue(s.contains(TEST_TYPE2));
+        assertTrue(s.contains(TEST_TYPE3));
         assertTrue(s.endsWith(")"));
     }
 
