Skip to content

Overlay: Discard Java config and XML base entities in overlay extracted files - #20505

Merged
kaspersv merged 2 commits into
github:mainfrom
kaspersv:kaspersv/future-proof-java-discarding2
Sep 29, 2025
Merged

Overlay: Discard Java config and XML base entities in overlay extracted files#20505
kaspersv merged 2 commits into
github:mainfrom
kaspersv:kaspersv/future-proof-java-discarding2

Conversation

@kaspersv

@kaspersvkaspersv commented Sep 23, 2025

Copy link
Copy Markdown
Contributor

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 in overlayChangedFiles. The use of overlayChangedFiles is 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-bintray and java/spring-boot-exposed-actuators-config.

@kaspersv
kaspersvforce-pushed the kaspersv/future-proof-java-discarding2 branch 3 times, most recently from 9122500 to c70ad9bCompareSeptember 23, 2025 08:57
@kaspersv
kaspersvforce-pushed the kaspersv/future-proof-java-discarding2 branch from c70ad9b to f02da68CompareSeptember 23, 2025 10:28
@kaspersv
kaspersv marked this pull request as ready for review September 24, 2025 06:48
@kaspersv
kaspersv requested a review from a team as a code ownerSeptember 24, 2025 06:48
CopilotAI review requested due to automatic review settings September 24, 2025 06:48

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 DiscardableXmlLocatable for XML entity management

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

FileDescription
java/ql/lib/semmle/code/java/Overlay.qllAdds new overlay predicates and discard logic for config and XML files
java/ql/lib/semmle/code/xml/XML.qllUpdates XML discardable classes to extend new DiscardableXmlLocatable base class

string toString() { none() }
}

overlay[local]

CopilotAISep 24, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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.
*/

Copilot uses AI. Check for mistakes.
@kaspersvkaspersv added the no-change-note-required This PR does not need a change note label Sep 24, 2025
@kaspersv
kaspersv merged commit b52fff2 into github:mainSep 29, 2025
18 of 19 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Javano-change-note-requiredThis PR does not need a change note

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@kaspersv@alexet