Repository navigation
Code Analysis Java Captured Parents
Snapshot: 8 November 2026. Draft #1272, b5b14e8a9666a4a92e8a71d844f788bb28041c56, is the eleventh native stack #1262 layer above #1271. Original team commits/authors, the ten actual lower heads and PR ownership remain unchanged. Not in Labs; not approved, merged, released or installed.
Fixed source answers, exact attribution rows, scripts and limits.
In Commons Lang c8774fa74adbbbcd4e5f915ab6bc3aa10d877419, StringUtilsTest.java:622:26 calls StringUtils.defaultString(null). Investigation previously stopped because the caller extends AbstractLangTest. Now captured ancestor field/type evidence permits navigation to StringUtils.java:1553:5. The two-argument call at629 reaches its annotated declaration1583, and StringUtilsEmptyBlankTest.java:122/125 reach isEmpty at3604:5.
The four frozen questions move from4missed/0wrong to4correct/0wrong/0missed. Source answersd4601c493 and baseline10bcf7ac4 preceded initial rulec630a529d; the two isEmpty sites were reserved from initial rule tuning. The corpus was previously exposed, not blind. This gains a source implementation step, not runtime initialization, argument applicability or complete callers.
Java v4 / adapter10 reuses the existing type/member hierarchy traversal, collecting ancestor instance/static field names and exact qualifierAncestry points. Closed captured ordinary top-level ancestry can exclude a qualifier blocker; member types retain their namespace guards. Generic ordinary ancestors can supply field-name evidence without type-argument inference. Inaccessible fields may conservatively block a call.
External, incomplete, cyclic or ambiguous ancestry, bare inherited calls, inherited target owners, interfaces, nested/lambda callers and full overload/classpath semantics remain unproved. The JDK type-only allowlist is not a field inventory. Saved navigation requires fresh ancestor source; changing a parent while caller/target stay unchanged now disables navigation. Historical Java1–3 captures retain their original coverage without rebinding.
A post-design SLF4J9783320b6c4411a0b120cad9e32cd9a981b1dac2 replay found an incorrect experimental target: the reload4j test at66 jumped to the sibling log4j-over-slf4j compatibility LogManager, while its POM declares external reload4j1.2.22. Source/POM freeze97cb39e0f preceded scope correction0ba2bb677.
New inherited-context targets and ancestors must stay within one captured Maven/Gradle marker root; cross-root calls report java-inherited-build-scope. The five supplemental observations become2correct/0wrong/2known misses/1external unknown, from the initial prototype4correct/1wrong. Two NoBinding calls within slf4j-api still reach LoggerFactoryFriend.reset:43; two legitimate Simple->Api calls remain misses until classpath evidence is supported. These are post-design observations, not a held-out score. The four Commons answers are unchanged.
This is not a Maven/Gradle resolver. Older non-inherited global source candidates retain their contract and unproved classpath;60existing SLF4J cross-build candidates remain. No old reload4j->compatibility target was found among them. Future dependency work must preserve legitimate edges and investigate collisions explicitly.
Commons preserves all64,826call ranges,9,033functions,489files/imports and993old targets;4,748new targets independently agree with javac17 over all489source files and pinned test dependencies,0errors/0different/0unavailable. The selected4are included in that denominator. A valid different-method substitution is rejected (4,747agree/1different, exit1).
SLF4J preserves4,856call ranges,1,608functions,260files/imports and prior targets. Both new targets agree with a selected64-file API compiler graph. The full65-file graph has2real upstream errors in LoggerFactoryTest.TestingProvider; only that unrelated test is excluded from the optional oracle. Analyzer capture is unchanged, including its separate jclcontent.java parse error. This is not a clean full-SLF4J build claim.
The optional audit reused retained Temurin17.0.21; no SDK was installed. Pinned audit JAR hashes/URLs and byte costs are recorded (Commons6,386,640bytes plus JUnit4/Hamcrest API dependencies). The initial Commons download took about0.975s here; fresh JDK installation cost was not measured. Normal Java analysis needs no JDK/Maven/Gradle. Missing optional SDK gives explicit guidance before downloads. No upstream source edits, build/test execution, annotation processors or emitted/executed upstream classes. The initial unexpanded classpath setup error is separately preserved. The reproducible helper produces byte-identical compiler TSVs.
Use the linked run.py with the fixed Commons root and normal source CLI; use #1271's CLI plus --expect baseline for Java3. Repeat with the unpacked ZIP CLI. compiler.py verifies fixed source bytes and pinned audit dependencies, compiles only the owned tool, then runs javac parse/analyze -proc:none --release17. audit.py compares every newly emitted target. For SLF4J use its declared API source prefix and explicit excluded test; the complete source list and original errors are retained.
- Local final module401/401, extracted calls/qualified/shared-question/paired48/48, zero skips. Release identity and website distribution1/1 pass.
- Source/ZIP new recipe4correct/0wrong/0missed. Older arity recipe4correct/0wrong/3missed; shared JS forwarding recipe4correct/0wrong/0missed/1unknown. These cohorts overlap.
- Owned changed-body paired CLI finds1known inherited-context caller per side, ready/exit0. This is synthetic integration, not a new real upstream version pair.
- Five raw capture instances (four distinct payloads) match byte-for-byte;9orientation payloads agree after only installation/output paths, including actual saved Java3 and shared JS. Fourteen normal CLI commands per distribution exit0.
- Two canonical Node22.23.3/zlib1.3.1-e00f703 builds agree;168module files match source. ZIP SHA2567a59436f2535dcab4fbef25e744c2c95b7ea3bcaa52ee36258d578d63d178152. Node26.12.0 runs local tests/CLI. No live Skill installation.
- Final-head CI42432297712 completed success at b5b14e8a9. Actual analysis job128583695235 executed401tests /401pass /0fail /0skip. All executed full-regression, browser, ZIP/WebM, website, three-platform package and both Windows portability checks passed; deployment jobs were skipped. Local/compiler/package results remain separately attributed.
- No approval, merge, release or installation. Remaining classpath misses and other-language investigation interruptions continue.