diff --git a/flink-connector-mongodb-cdc/src/main/java/com/ververica/cdc/connectors/mongodb/source/utils/CollectionDiscoveryUtils.java b/flink-connector-mongodb-cdc/src/main/java/com/ververica/cdc/connectors/mongodb/source/utils/CollectionDiscoveryUtils.java index 489373e674..1207c98ba6 100644 --- a/flink-connector-mongodb-cdc/src/main/java/com/ververica/cdc/connectors/mongodb/source/utils/CollectionDiscoveryUtils.java +++ b/flink-connector-mongodb-cdc/src/main/java/com/ververica/cdc/connectors/mongodb/source/utils/CollectionDiscoveryUtils.java @@ -19,6 +19,7 @@ import com.mongodb.MongoNamespace; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoDatabase; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.bson.BsonDocument; import org.bson.conversions.Bson; @@ -88,22 +89,21 @@ public static List collectionNames( return collectionNames; } - public static Predicate databaseFilter(List databaseList) { - Predicate databaseFilter = CollectionDiscoveryUtils::isNotBuiltInDatabase; - if (databaseList != null && !databaseList.isEmpty()) { - List databasePatterns = includeListAsPatterns(databaseList); - databaseFilter = databaseFilter.and(anyMatch(databasePatterns)); + private static Predicate stringListFilter( + Predicate filter, List stringList) { + if (CollectionUtils.isNotEmpty(stringList)) { + List databasePatterns = includeListAsPatterns(stringList); + filter = filter.and(anyMatch(databasePatterns)); } - return databaseFilter; + return filter; + } + + public static Predicate databaseFilter(List databaseList) { + return stringListFilter(CollectionDiscoveryUtils::isNotBuiltInDatabase, databaseList); } public static Predicate collectionsFilter(List collectionList) { - Predicate collectionFilter = CollectionDiscoveryUtils::isNotBuiltInCollections; - if (collectionList != null && !collectionList.isEmpty()) { - List collectionPatterns = includeListAsPatterns(collectionList); - collectionFilter = collectionFilter.and(anyMatch(collectionPatterns)); - } - return collectionFilter; + return stringListFilter(CollectionDiscoveryUtils::isNotBuiltInCollections, collectionList); } public static Predicate anyMatch(List patterns) {