From 54dd427670425c5eac57b5cb6d648ca9cb21e4cc Mon Sep 17 00:00:00 2001
From: Johannes Feichtner <343448+Churro@users.noreply.github.com>
Date: Fri, 24 Feb 2023 06:00:17 +0100
Subject: [PATCH] fix(gradle): set Java 17 as constraint for gradle >= 7.3
 (#20603)

---
 lib/modules/manager/gradle-wrapper/util.spec.ts | 6 ++++++
 lib/modules/manager/gradle-wrapper/utils.ts     | 4 ++++
 lib/modules/manager/gradle/artifacts.spec.ts    | 2 +-
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/lib/modules/manager/gradle-wrapper/util.spec.ts b/lib/modules/manager/gradle-wrapper/util.spec.ts
index e5e3ba7bb2..c743eb8dd5 100644
--- a/lib/modules/manager/gradle-wrapper/util.spec.ts
+++ b/lib/modules/manager/gradle-wrapper/util.spec.ts
@@ -39,6 +39,12 @@ describe('modules/manager/gradle-wrapper/util', () => {
       GlobalConfig.set({ binarySource: 'docker' });
       expect(getJavaConstraint('7.0.1')).toBe('^16.0.0');
     });
+
+    it('return ^17.0.0 for docker gradle >= 7.3', () => {
+      GlobalConfig.set({ binarySource: 'docker' });
+      expect(getJavaConstraint('7.3.0')).toBe('^17.0.0');
+      expect(getJavaConstraint('8.0.1')).toBe('^17.0.0');
+    });
   });
 
   describe('extractGradleVersion()', () => {
diff --git a/lib/modules/manager/gradle-wrapper/utils.ts b/lib/modules/manager/gradle-wrapper/utils.ts
index cbd7a0f962..473e958f3c 100644
--- a/lib/modules/manager/gradle-wrapper/utils.ts
+++ b/lib/modules/manager/gradle-wrapper/utils.ts
@@ -48,6 +48,10 @@ export function getJavaConstraint(
   gradleVersion: string | null | undefined
 ): string | null {
   const major = gradleVersion ? gradleVersioning.getMajor(gradleVersion) : null;
+  const minor = gradleVersion ? gradleVersioning.getMinor(gradleVersion) : null;
+  if (major && (major > 7 || (major >= 7 && minor && minor >= 3))) {
+    return '^17.0.0';
+  }
   if (major && major >= 7) {
     return '^16.0.0';
   }
diff --git a/lib/modules/manager/gradle/artifacts.spec.ts b/lib/modules/manager/gradle/artifacts.spec.ts
index b3b0426da2..8e0f07e19d 100644
--- a/lib/modules/manager/gradle/artifacts.spec.ts
+++ b/lib/modules/manager/gradle/artifacts.spec.ts
@@ -83,7 +83,7 @@ describe('modules/manager/gradle/artifacts', () => {
         content = 'New gradle.lockfile';
       } else if (fileName === 'gradle/wrapper/gradle-wrapper.properties') {
         content =
-          'distributionUrl=https\\://services.gradle.org/distributions/gradle-7.4-bin.zip';
+          'distributionUrl=https\\://services.gradle.org/distributions/gradle-7.2-bin.zip';
       }
 
       return Promise.resolve(content);
-- 
GitLab