Skip to content

🐛 Adding benchmark test, and updating to remove idx file#941

Merged
shawn-hurley merged 2 commits intokonveyor:mainfrom
shawn-hurley:bugfix/remove-900mb-from-image
Oct 29, 2025
Merged

🐛 Adding benchmark test, and updating to remove idx file#941
shawn-hurley merged 2 commits intokonveyor:mainfrom
shawn-hurley:bugfix/remove-900mb-from-image

Conversation

@shawn-hurley
Copy link
Copy Markdown
Contributor

@shawn-hurley shawn-hurley commented Oct 27, 2025

  • Wanted to compare the concepts in this PR to the main with a benchmark
  • removes the need for the .idx file.

Summary:

For inside the index:

The new approach generally takes slightly fewer iterations but takes 4100 more nanoseconds per iteration.

The new approach allocates more when found in the index and therefore has more Bytes allocated on average (20,080B).

None of these numbers looks egregiously worse to me, so we shouldn't keep an extra 900 MB in the base image.

Please run it yourselves and let me know if you see something different.

Benchmark Results:

goos: darwin
goarch: arm64
pkg: github.com/konveyor/analyzer-lsp/external-providers/java-external-provider/pkg/java_external_provider
cpu: Apple M4 Pro
BenchmarkConstructArtifactFromSHA/InIndex-14 31057 192109 ns/op 35208 B/op 48 allocs/op
BenchmarkConstructArtifactFromSHA/NotInIndex-14 11598850 474.1 ns/op 80 B/op 2 allocs/op


goos: darwin
goarch: arm64
pkg: github.com/konveyor/analyzer-lsp/external-providers/java-external-provider/pkg/java_external_provider
cpu: Apple M4 Pro
BenchmarkConstructArtifactFromSHA/InIndex-14 30781 196209 ns/op 55288 B/op 140 allocs/op
BenchmarkConstructArtifactFromSHA/NotInIndex-14 12938926 491.1 ns/op 80 B/op 2 allocs/op


<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **Refactor**
  * Switched Maven index lookup to line-based searching for simpler, more reliable index reads.
  * Improved Gradle dependency parsing to extract names and versions more accurately.

* **Tests**
  * Added benchmark and unit tests covering artifact construction for indexed and non-indexed cases.
  * Updated test expectations and logging to improve test clarity and diagnostics.

* **Chores**
  * Added Make targets to extract Maven index files and run the benchmark.
  * Expanded .gitignore to include Maven index files.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Oct 27, 2025

Walkthrough

Refactors Java external provider Maven index lookup from binary-entry parsing to line/string-based lookup; adds Makefile targets to extract and benchmark Maven index files; updates .gitignore; and adds/adjusts unit tests and a benchmark for constructing artifacts from SHA and Gradle dependency parsing.

Changes

Cohort / File(s) Summary
Build config
\.gitignore`, `Makefile``
.gitignore: added maven-index.txt and maven-index.idx. Makefile: added extract-maven-index-files and run-index-benchmark targets.
Index lookup refactor
external-providers/java-external-provider/pkg/java_external_provider/...
\util.go``
Removed binary-index constants/types (KeySize, entrySize, IndexEntry) and binary read helpers. Reworked search to line/string-based processing: searchIndex(f *os.File, key string) (string, error) and readKeyAt(f *os.File, i int) (string, string, error); removed offset/value binary lookup and related imports; adjusted error handling.
Dependency parsing logic
external-providers/java-external-provider/pkg/java_external_provider/...
\dependency.go``
Replaced single regex with two-pattern parsing for Gradle dependency forms (resolved-version and simple-version); branch assignments for dep.Name and dep.Version depending on matched pattern; falls back to existing libRegex when needed.
Tests: dependency expectations
external-providers/java-external-provider/pkg/java_external_provider/...
\dependency_test.go``
Updated test expectations: FileURIPrefix values changed to file:///testdata/..., Extras literals use map[string]any, added label initialization/filtering before parsing, minor test scaffolding/comments.
Tests: artifact construction
external-providers/java-external-provider/pkg/java_external_provider/...
\util_test.go`, `util_benchmark_test.go``
Added TestConstructArtifactFromSHA (table-driven) and BenchmarkConstructArtifactFromSHA covering InIndex, LastItemInIndex, NotInIndex scenarios; uses testdata maven index and jar inputs and logr/testr utilities.

Sequence Diagram(s)

sequenceDiagram
    actor Caller
    participant Search
    participant SearchIndex
    participant DataFile
    participant BuildArtifact

    rect rgb(240,240,255)
    Note over SearchIndex: Old (binary-entry) — removed
    Caller->>Search: search(key)
    Search->>SearchIndex: searchIndex(indexFile, key)
    SearchIndex->>SearchIndex: read fixed-size binary entry
    Search->>DataFile: read bytes at offset/length
    Search->>BuildArtifact: buildArtifact(key, bytes)
    BuildArtifact-->>Caller: artifact
    end

    rect rgb(230,255,230)
    Note over SearchIndex: New (line/string) — current
    Caller->>Search: search(key)
    Search->>SearchIndex: searchIndex(dataFile, key)
    SearchIndex->>DataFile: scan/read lines, find matching line
    SearchIndex-->>Search: return matched line (string)
    Search->>BuildArtifact: buildArtifact(key, valueString)
    BuildArtifact-->>Caller: artifact
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Focus review on: util.go API/signature removals and new line-based parsing/error handling; dependency.go regex correctness and edge cases; tests/benchmarks referencing testdata paths and the updated expectations in dependency_test.go.

Possibly related PRs

Suggested labels

cherry-pick/release-0.8

Suggested reviewers

  • eemcmullan
  • pranavgaikwad
  • jmle

Poem

🐰 Hopping through index lines I go,

Bytes to strings, a gentler flow.
Tests and benches set to run,
Maven maps beneath the sun.
Tiny hops, a job well done.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 60.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The PR title "Adding benchmark test, and updating to remove idx file" directly corresponds to the primary changes in the pull request. The changeset includes a new benchmark test file (util_benchmark_test.go) with BenchmarkConstructArtifactFromSHA, and substantial refactoring in util.go that shifts from binary index-based processing to line-based processing, eliminating the need for the .idx file. The title accurately reflects the main objectives stated in the PR description: adding benchmark validation and removing the .idx file dependency to reduce base image size by approximately 900 MB. While the title doesn't detail the extent of the util.go refactoring, it appropriately captures the high-level intent from the developer's perspective.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
external-providers/java-external-provider/pkg/java_external_provider/dependency_test.go (1)

3-790: Tests for active implementation functions must be re-enabled with justification.

Your review comment is fully justified. I've confirmed critical findings:

What I verified:

  • parseMavenDepLines (line 913) and parseGradleDependencyOutput (line 559) are active, functional implementations in dependency.go
  • All tests for these functions are disabled in dependency_test.go via block comment (/* ... */)
  • No explanation exists anywhere in the code for why tests are disabled
  • No TODO/FIXME comments explain this decision

The problem:
This creates untested code paths for critical dependency parsing functionality. The block comment at line 3 of the test file provides no rationale, making it impossible to determine if this is:

  • Temporary work-in-progress
  • Broken tests needing fixes
  • Intentional but undocumented

Required action:
The developer must either:

  1. Re-enable and fix the tests if they broke during refactoring
  2. Add an explanatory comment (if intentionally disabled) with a tracking issue reference and timeline
  3. Document why this test coverage gap is acceptable

The current state—active implementation with disabled tests and no explanation—is not acceptable for production code.

🧹 Nitpick comments (1)
Makefile (1)

98-103: Consider adding error handling for container cleanup.

The extract-maven-index-files target runs cleanup commands with || true, which is good. However, if the podman cp commands fail, the temporary container may not be cleaned up properly.

Consider using a trap or ensuring cleanup runs even on failure:

extract-maven-index-files:
	podman run --name temp-jdtls -d quay.io/konveyor/jdtls-server-base:latest
	podman cp temp-jdtls:/usr/local/etc/maven-index.txt $(PWD)/external-providers/java-external-provider/pkg/java_external_provider/testdata/ || (podman stop temp-jdtls; podman rm temp-jdtls; exit 1)
	podman cp temp-jdtls:/usr/local/etc/maven-index.idx $(PWD)/external-providers/java-external-provider/pkg/java_external_provider/testdata/ || (podman stop temp-jdtls; podman rm temp-jdtls; exit 1)
	podman stop temp-jdtls || true
	podman rm temp-jdtls || true

However, this is optional—the current approach with || true is reasonable for a developer-facing target.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e85bc0b and 6acb929.

⛔ Files ignored due to path filters (2)
  • external-providers/java-external-provider/pkg/java_external_provider/testdata/should_find_in_index.jar is excluded by !**/*.jar
  • external-providers/java-external-provider/pkg/java_external_provider/testdata/will_not_find.jar is excluded by !**/*.jar
📒 Files selected for processing (6)
  • .gitignore (1 hunks)
  • Makefile (1 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/dependency_test.go (3 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/util.go (4 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/util_benchmark_test.go (1 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/util_test.go (2 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-30T12:11:45.673Z
Learnt from: pranavgaikwad
PR: konveyor/analyzer-lsp#859
File: external-providers/java-external-provider/pkg/java_external_provider/dependency.go:694-694
Timestamp: 2025-07-30T12:11:45.673Z
Learning: In the Java external provider dependency walker (external-providers/java-external-provider/pkg/java_external_provider/dependency.go), errors from toDependency function calls should be ignored as they are not considered important by the maintainers.

Applied to files:

  • external-providers/java-external-provider/pkg/java_external_provider/dependency_test.go
🔇 Additional comments (2)
.gitignore (1)

28-29: LGTM! Properly excluding generated Maven index files.

The addition of maven-index.txt and maven-index.idx to .gitignore is appropriate, as these files are extracted at build/test time via the new extract-maven-index-files Makefile target and should not be committed to version control.

external-providers/java-external-provider/pkg/java_external_provider/util.go (1)

700-721: Fix typo in buffer size comment and clarify external dependency format assumptions.

The readKeyAt function already documents the 500-byte buffer assumption at line 706. However, the comment contains a typo ("firt" → "first") and doesn't clarify that the 206-byte line length assumption depends on the Maven index file format remaining stable. Since index files are loaded externally and not created by this code, document that:

  1. The format must remain: space-separated key-value pairs, with lines ≤ 206 bytes
  2. This requires validating against the Maven central index format specification

Fix the typo in the inline comment at line 706 and consider adding a comment noting that line length validation happens implicitly via the len(parts) != 2 check at line 720 (malformed or oversized lines will fail there).

},
{
name: "NotInIndex",
jarFile: "testdata/will_not_find.jar.jar",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix duplicate .jar extension in test file path.

The filename has a double .jar extension: will_not_find.jar.jar. This appears to be a typo and should likely be will_not_find.jar.

Apply this diff:

 		{
 			name:           "NotInIndex",
-			jarFile:        "testdata/will_not_find.jar.jar",
+			jarFile:        "testdata/will_not_find.jar",
 			mavenIndexPath: "testdata",
 		},
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
jarFile: "testdata/will_not_find.jar.jar",
{
name: "NotInIndex",
jarFile: "testdata/will_not_find.jar",
mavenIndexPath: "testdata",
},
🤖 Prompt for AI Agents
In
external-providers/java-external-provider/pkg/java_external_provider/util_benchmark_test.go
around line 27, the test uses a filename with a duplicated “.jar” extension
("will_not_find.jar.jar"); update the string to remove the extra extension so it
reads "will_not_find.jar" to correct the typo and ensure the test path is valid.

}
}

// BenchmarkConstructArtifactFromSHA benchmarks the constructArtifactFromSHA function// with different scenarios to measure performance characteristics.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix the comment to match the function name.

The comment references BenchmarkConstructArtifactFromSHA, but this is a test function named TestConstructArtifactFromSHA.

Apply this diff:

-// BenchmarkConstructArtifactFromSHA benchmarks the constructArtifactFromSHA function// with different scenarios to measure performance characteristics.
+// TestConstructArtifactFromSHA tests the toDependency function with different scenarios.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
// BenchmarkConstructArtifactFromSHA benchmarks the constructArtifactFromSHA function// with different scenarios to measure performance characteristics.
// TestConstructArtifactFromSHA tests the toDependency function with different scenarios.
🤖 Prompt for AI Agents
In
external-providers/java-external-provider/pkg/java_external_provider/util_test.go
around line 104, the top-of-function comment incorrectly references
BenchmarkConstructArtifactFromSHA for a test function; update the comment to
reference TestConstructArtifactFromSHA (or change it to a neutral description)
so it matches the function name and purpose.

Comment on lines +145 to +158
val, err := toDependency(context.Background(), log, tc.jarFile, tc.mavenIndexPath)
log.Info("here", "val", fmt.Sprintf("%#v", val), "err", err)
if err != nil && !tc.shouldFind {
return
}
if err != nil {
t.Fail()
}
if !tc.shouldFind {
t.Fail()
}
if !reflect.DeepEqual(val, tc.value) {
t.Fail()
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion | 🟠 Major

Add descriptive failure messages to test assertions.

The test lacks descriptive failure messages, making debugging difficult when tests fail. The error handling logic also appears incomplete—both test cases have shouldFind: true, but the conditional branches suggest support for shouldFind: false.

Apply this diff to improve test clarity:

 		t.Run(tc.name, func(t *testing.T) {
 			val, err := toDependency(context.Background(), log, tc.jarFile, tc.mavenIndexPath)
-			log.Info("here", "val", fmt.Sprintf("%#v", val), "err", err)
-			if err != nil && !tc.shouldFind {
-				return
-			}
 			if err != nil {
-				t.Fail()
-			}
-			if !tc.shouldFind {
-				t.Fail()
+				if tc.shouldFind {
+					t.Fatalf("expected to find artifact but got error: %v", err)
+				}
+				return
 			}
 			if !reflect.DeepEqual(val, tc.value) {
-				t.Fail()
+				t.Errorf("artifact mismatch:\ngot:  %#v\nwant: %#v", val, tc.value)
 			}
 		})
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
val, err := toDependency(context.Background(), log, tc.jarFile, tc.mavenIndexPath)
log.Info("here", "val", fmt.Sprintf("%#v", val), "err", err)
if err != nil && !tc.shouldFind {
return
}
if err != nil {
t.Fail()
}
if !tc.shouldFind {
t.Fail()
}
if !reflect.DeepEqual(val, tc.value) {
t.Fail()
}
val, err := toDependency(context.Background(), log, tc.jarFile, tc.mavenIndexPath)
if err != nil {
if tc.shouldFind {
t.Fatalf("expected to find artifact but got error: %v", err)
}
return
}
if !reflect.DeepEqual(val, tc.value) {
t.Errorf("artifact mismatch:\ngot: %#v\nwant: %#v", val, tc.value)
}
🤖 Prompt for AI Agents
external-providers/java-external-provider/pkg/java_external_provider/util_test.go
around lines 145 to 158: the test uses bare t.Fail() calls and unclear control
flow for tc.shouldFind, so replace those with descriptive assertions and clearer
branching: when toDependency returns an error, if tc.shouldFind then fail the
test with t.Fatalf including tc.name and the error, otherwise return to succeed;
when no error and tc.shouldFind is false fail with a message showing unexpected
value; when values differ fail with a message showing expected vs actual and
tc.name; include fmt.Sprintf or %#+v representations in the messages so failures
are actionable.

@shawn-hurley shawn-hurley force-pushed the bugfix/remove-900mb-from-image branch from 6acb929 to 5ca4f3d Compare October 28, 2025 06:21
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (2)
external-providers/java-external-provider/pkg/java_external_provider/util.go (1)

655-690: Critical: Binary search implementation is fundamentally broken.

The implementation uses fi.Size() (file size in bytes) as the search space for sort.Search, but readKeyAt treats positions as byte offsets into a text file with variable-length lines. This is incorrect because:

  1. sort.Search(n, ...) expects n to be the number of elements (lines)
  2. The code sets n to the file size in bytes (line 660)
  3. sort.Search passes values 0 to n-1 (byte positions) to the comparison function
  4. readKeyAt seeks to byte position i and attempts to read lines, but byte positions don't align with line boundaries

This will produce incorrect results: the search may fail to find keys that exist, or return wrong matches. Binary search requires either:

  • Option 1: Count lines first, search by line index, and maintain a line offset map
  • Option 2: Use sequential line-by-line search for unsorted text files
  • Option 3: Keep the sorted binary format with fixed-size records

Since the PR goal is removing the binary .idx file, and given the performance benchmarks show acceptable results, consider Option 2 (sequential scan) as the simplest correct implementation.

Additionally, line 680 returns the wrong error variable (err instead of searchErr), preventing proper error propagation:

 	if searchErr != nil {
-		return "", err
+		return "", searchErr
 	}
external-providers/java-external-provider/pkg/java_external_provider/util_benchmark_test.go (1)

27-27: Fix duplicate .jar extension in test file path.

The filename has a double .jar extension which appears to be a typo.

-			jarFile:        "testdata/will_not_find.jar.jar",
+			jarFile:        "testdata/will_not_find.jar",
🧹 Nitpick comments (1)
external-providers/java-external-provider/pkg/java_external_provider/util.go (1)

706-706: Fix typo in comment.

"firt byte" should be "first byte".

-	// For now test with 500 bytes (largest line is 206, so worst case i is firt byte in that line, so 206 * 2 is what we want in the buffer, or 412 so 500 is a bit extra
+	// For now test with 500 bytes (largest line is 206, so worst case i is first byte in that line, so 206 * 2 is what we want in the buffer, or 412 so 500 is a bit extra
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6acb929 and 5ca4f3d.

⛔ Files ignored due to path filters (2)
  • external-providers/java-external-provider/pkg/java_external_provider/testdata/should_find_in_index.jar is excluded by !**/*.jar
  • external-providers/java-external-provider/pkg/java_external_provider/testdata/will_not_find.jar is excluded by !**/*.jar
📒 Files selected for processing (6)
  • .gitignore (1 hunks)
  • Makefile (1 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/dependency_test.go (1 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/util.go (4 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/util_benchmark_test.go (1 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/util_test.go (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • Makefile
  • external-providers/java-external-provider/pkg/java_external_provider/util_test.go
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-30T12:11:45.673Z
Learnt from: pranavgaikwad
PR: konveyor/analyzer-lsp#859
File: external-providers/java-external-provider/pkg/java_external_provider/dependency.go:694-694
Timestamp: 2025-07-30T12:11:45.673Z
Learning: In the Java external provider dependency walker (external-providers/java-external-provider/pkg/java_external_provider/dependency.go), errors from toDependency function calls should be ignored as they are not considered important by the maintainers.

Applied to files:

  • external-providers/java-external-provider/pkg/java_external_provider/dependency_test.go
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: test
  • GitHub Check: test (windows-latest)
  • GitHub Check: test (macos-latest)
  • GitHub Check: benchmark (windows-latest, windows)
🔇 Additional comments (1)
.gitignore (1)

28-29: LGTM: Properly ignoring generated test artifacts.

The Maven index files align with the new Makefile targets and should not be committed.

Copy link
Copy Markdown
Contributor

@jmle jmle left a comment

Choose a reason for hiding this comment

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

Looks good

* Wanted to compare the concepts in this PR to main w/ a benchmark
* removes the need for the .idx file.

Signed-off-by: Shawn Hurley <shawn@hurley.page>
Signed-off-by: Shawn Hurley <shawn@hurley.page>
@shawn-hurley shawn-hurley force-pushed the bugfix/remove-900mb-from-image branch from 7951250 to 1d30e1e Compare October 29, 2025 17:20
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (1)
external-providers/java-external-provider/pkg/java_external_provider/util_benchmark_test.go (1)

31-34: Fix the NotInIndex fixture path.

The benchmark still points at will_not_find.jar.jar, so it opens the wrong file and never exercises the “missing in index” jar. Please drop the duplicate extension.

 		{
 			name:           "NotInIndex",
-			jarFile:        "testdata/will_not_find.jar.jar",
+			jarFile:        "testdata/will_not_find.jar",
 			mavenIndexPath: "testdata",
 		},
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7951250 and 1d30e1e.

⛔ Files ignored due to path filters (3)
  • external-providers/java-external-provider/pkg/java_external_provider/testdata/last_jar_in_file.jar is excluded by !**/*.jar
  • external-providers/java-external-provider/pkg/java_external_provider/testdata/should_find_in_index.jar is excluded by !**/*.jar
  • external-providers/java-external-provider/pkg/java_external_provider/testdata/will_not_find.jar is excluded by !**/*.jar
📒 Files selected for processing (7)
  • .gitignore (1 hunks)
  • Makefile (1 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/dependency.go (1 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/dependency_test.go (21 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/util.go (4 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/util_benchmark_test.go (1 hunks)
  • external-providers/java-external-provider/pkg/java_external_provider/util_test.go (2 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .gitignore
🚧 Files skipped from review as they are similar to previous changes (3)
  • external-providers/java-external-provider/pkg/java_external_provider/dependency.go
  • Makefile
  • external-providers/java-external-provider/pkg/java_external_provider/util_test.go
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-30T12:11:45.673Z
Learnt from: pranavgaikwad
PR: konveyor/analyzer-lsp#859
File: external-providers/java-external-provider/pkg/java_external_provider/dependency.go:694-694
Timestamp: 2025-07-30T12:11:45.673Z
Learning: In the Java external provider dependency walker (external-providers/java-external-provider/pkg/java_external_provider/dependency.go), errors from toDependency function calls should be ignored as they are not considered important by the maintainers.

Applied to files:

  • external-providers/java-external-provider/pkg/java_external_provider/util_benchmark_test.go
  • external-providers/java-external-provider/pkg/java_external_provider/util.go
  • external-providers/java-external-provider/pkg/java_external_provider/dependency_test.go
🧬 Code graph analysis (1)
external-providers/java-external-provider/pkg/java_external_provider/dependency_test.go (1)
provider/provider.go (1)
  • DepDAGItem (483-483)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: test
  • GitHub Check: test (windows-latest, windows, amd64, windows-X64)
  • GitHub Check: benchmark (windows-latest, windows)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants