Uh oh!
There was an error while loading. Please reload this page.
Overlay: Discard Java config and XML base entities in overlay extracted files - #20505
Conversation
9122500 to
c70ad9bComparec70ad9b to
f02da68CompareThere was a problem hiding this comment.
Pull Request Overview
This PR improves overlay database handling by extending discard predicates for Java config and XML entities. The change addresses accuracy regressions under non-incremental extraction where files outside of overlayChangedFiles may still be extracted.
- Introduces new predicates to track overlay-extracted config and XML files
- Updates discard logic to handle all overlay-extracted files, not just changed files
- Creates a new abstract class
DiscardableXmlLocatablefor XML entity management
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| java/ql/lib/semmle/code/java/Overlay.qll | Adds new overlay predicates and discard logic for config and XML files |
| java/ql/lib/semmle/code/xml/XML.qll | Updates XML discardable classes to extend new DiscardableXmlLocatable base class |
| string toString() { none() } | ||
| } | ||
| overlay[local] |
There was a problem hiding this comment.
The condition not files(el, _) and not xmlNs(el, _, _, _) appears to be filtering logic but lacks documentation explaining why these specific exclusions are necessary. Consider adding a comment to clarify the purpose of these filters.
| overlay[local] | |
| overlay[local] | |
| /** | |
| *Returnstrue if the given file is extracted in the overlay variant for an `@xmllocatable` | |
| *thatisneitherafileentitynoranXMLnamespace declaration. | |
| *Theconditions `not files(el, _)` and `not xmlNs(el, _, _, _)` ensure that only relevant | |
| *XMLlocatable entities are considered, excluding files and namespace declarations which | |
| *arenotsubjecttooverlay extraction. | |
| */ |
Uh oh!
There was an error while loading. Please reload this page.
This PR improves the Java config and XML discard predicates to avoid apparent bqrs accuracy regressions under the current non-incremental Java property and XML extraction. Under non-incremental extraction, the Java property and XML extractors may extract files outside of
overlayChangedFiles. To account for these files and properly discard from base, this PR extends the discard predicates to discard Java config and XML base entities in all overlay extracted files, even if they do not appear inoverlayChangedFiles. The use ofoverlayChangedFilesis still necessary to discard from deleted Java property and XML files.DCA experiments (variant vs baseline) shows the expected accuracy improvements for
java/maven/non-https-url,java/maven/dependency-upon-bintrayandjava/spring-boot-exposed-actuators-config.