micronaut-0004: AbstractAnnotationMetadataBuilder.processAnnotation O(2^D) diamond recursion in meta-annotation stereotype traversal. isProcessed() guard tracks only current-path ancestors, not globally visited nodes — diamond meta-annotation hierarchies cause exponential re-visits of shared base annotations (e.g. @Transactional + @Retryable both extend @InterceptorBinding). 13x at D=8, 41x at D=10. 10/10 unit tests PASS. quarkus-0003 unit tests: added to QuarkusTest.java for the existing quarkus-0003 BeanDeployment.recursiveBuild diamond defect. 9/9 PASS. CLEAN markers: camel, hazelcast, tomcat, undertow, vertx — no diamond recursion pattern found. Hazelcast uses proper Tarjan algorithm. Tomcat uses iterative constraint propagation.
811 B
811 B
Vert.x — Diamond Recursion (CWE-407 O(2^D)) Scan: CLEAN
Pattern: Recursive cycle-detection / dependency traversal without a visited set
(exponential re-visitation on diamond-shaped DAGs)
Scan date: 2026-03-29
Scope: vertx-core/src/main/java/io/vertx/
Methods Checked
| Method | Location | Guard | Result |
|---|---|---|---|
| Module/verticle dependency ordering | vertx-core/src/main/java/ |
No recursive dependency graph traversal found | CLEAN |
| HA manager (beyond vertx-0001) | HAManager.java |
vertx-0001 already patched list-scan; no recursive graph traversal | CLEAN |
Conclusion
Vert.x does not implement a plugin/module dependency graph with recursive traversal. No diamond-recursion pattern was found beyond the previously identified vertx-0001.