Migrated from https://git2.unturf.com/engineering/java-topology.git
InFlightMetadataCollectorImpl.buildRecursiveOrderedFkSecondPasses() lacks a visited-table set — only guards against direct self-cycles (startTable check). On diamond FK dependency graphs (A references B and C, both B and C reference D), node D is visited 2^depth times. At depth=10: 25.9x overhead; at depth=13: 124x. Fix: add Set<String> visitedTables parameter; skip re-entry with visited.add(). Unit test: HibernateFkDiamondRecursionTest.java — confirms exponential growth and correctness (both algorithms produce identical FK sets). 4/4 assertions PASS. Separate from hibernate-0004 (which addressed the O(N^2) ArrayList.contains() in the same method); that patch uses LinkedHashSet to deduplicate output but does not prevent exponential recursive traversal of intermediate diamond nodes. spring and ant: diamond recursion scan CLEAN markers added. |
||
|---|---|---|
| .github | ||
| .jcheck | ||
| bin | ||
| defects | ||
| doc | ||
| docs | ||
| make | ||
| src | ||
| test | ||
| tests | ||
| tools | ||
| whitepaper | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| ADDITIONAL_LICENSE_INFO | ||
| ASSEMBLY_EXCEPTION | ||
| CLAUDE.md | ||
| configure | ||
| CONTRIBUTING.md | ||
| GNUmakefile | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| SECURITY.md | ||
| UNDF-REGISTRY.json | ||
Welcome to the JDK!
For build instructions please see the online documentation, or either of these files:
- doc/building.html (html version)
- doc/building.md (markdown version)
See https://openjdk.org/ for more information about the OpenJDK Community and the JDK and see https://bugs.openjdk.org for JDK issue tracking.