Beam: exhaustive scan of sdks/java/core + runners — all membership tests already use proper Set types (HashSet, LinkedHashSet, ImmutableSet, TreeSet). CLEAN. Hive hive-0001: SharedWorkOptimizer.mergeSchema() uses List.contains() in loops for neededColumnIDs/neededColumns/virtualCols dedup. O(D*R) per list. MEDIUM, 3-4x. Hive hive-0002: HiveRelMdSize.averageColumnSizes() uses ImmutableList.contains(i) in column loop during Calcite metadata queries. O(C*L). MEDIUM, 3-5x. Both patched with HashSet wrappers. 2/2 unit tests PASS.
1.2 KiB
1.2 KiB
Apache Beam — CWE-407 Scan Result: CLEAN
Date: 2026-03-30
Target: Apache Beam (Java SDK + Runners)
Scope: sdks/java/core/src/main/java/, runners/*/src/main/java/
Summary
No CWE-407 (algorithmic complexity via linear membership test in loop) defects found.
Apache Beam consistently uses proper data structures for membership testing:
TransformHierarchy.visit():Set<PValue>andSet<Node>for visitedValues/visitedNodesPortablePipelineJarCreator.copyResourcesFromJar():HashSet<String>for previousEntryNamesPipelineTranslation:HashSet<String>for viewTransformsGreedyStageFuser:LinkedHashSetfor fusedCollections/materializedPCollectionsNetworks.reachableNodes():HashSetfor visitedNodesOutputDeduplicator:HashMultimapfor pcollectionProducersSamzaTimerInternalsFactory:TreeSetfor eventTimeBufferDisplayData.Builder:IdentityHashSetfor visitedComponentsFieldAccessDescriptor.union():LinkedHashSetfor fieldsAccessedPipelineOptionsFactory:ImmutableSetfor IGNORED_METHODS, PIPELINE_OPTIONS_FACTORY_CLASSES
Keywords searched
.contains(, .indexOf(, ArrayList, List<, visited, seen, worklist