Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Bug: GH-1703 Two
Within ArtifactResolver there was a subtle bug, caused by
unintentional lazy evaluation of logical OR. In case filter is
present, it is ONLY and only lrm availability that drives
the logic.
  • Loading branch information
cstamas committed Dec 10, 2025
commit 6fea86d103c120ad5af51a0954e34ba17b7c2f2d
Original file line number Diff line number Diff line change
Expand Up @@ -312,9 +312,10 @@ private List<ArtifactResult> resolve(
new LocalArtifactRequest(
artifact, filteredRemoteRepositories, request.getRequestContext()));
result.setLocalArtifactResult(local);
boolean found = (filter != null && local.isAvailable()) || isLocallyInstalled(local, versionResult);
// with filtering it is availability that drives logic
// without filtering it is simply presence of file that drives the logic
boolean found = (filter != null && local.isAvailable())
|| (filter == null && isLocallyInstalled(local, versionResult));
// with filtering: availability drives the logic
// without filtering: simply presence of file drives the logic
// "interop" logic with simple LRM leads to RRF breakage: hence is ignored when filtering in effect
if (found) {
if (local.getRepository() != null) {
Expand Down