diff --git a/src/java/jres/jre.go b/src/java/jres/jre.go index 41bee407f6..d3e1560997 100644 --- a/src/java/jres/jre.go +++ b/src/java/jres/jre.go @@ -317,6 +317,12 @@ func normalizeVersionPattern(version string) string { if strings.Contains(version, "*") { return version } + // Exact patch version (e.g. "17.0.13") — already fully specified, don't append ".*" + // which would produce an unmatchable pattern like "17.0.13.*". + exactVersionRegex := regexp.MustCompile(`^\d+\.\d+\.\d+$`) + if exactVersionRegex.MatchString(version) { + return version + } return version + ".*" } diff --git a/src/java/jres/jre_test.go b/src/java/jres/jre_test.go index 14ba0dcac2..86b612ea5d 100644 --- a/src/java/jres/jre_test.go +++ b/src/java/jres/jre_test.go @@ -313,6 +313,14 @@ dependencies: Expect(dep.Name).To(Equal("openjdk")) Expect(dep.Version).To(Equal("17.0.13")) }) + + It("resolves exact patch version", func() { + os.Setenv("BP_JAVA_VERSION", "17.0.13") + dep, err := jres.GetJREVersion(ctx, "openjdk") + Expect(err).NotTo(HaveOccurred()) + Expect(dep.Name).To(Equal("openjdk")) + Expect(dep.Version).To(Equal("17.0.13")) + }) }) Context("without BP_JAVA_VERSION", func() {