From 99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 Mon Sep 17 00:00:00 2001
From: mahabaleshwars <147705296+mahabaleshwars@users.noreply.github.com>
Date: Thu, 14 Mar 2024 19:42:58 +0530
Subject: [PATCH] Patch for java version file (#610)

* patch to extract file from other location

* patch to extract filename from other directories

* removed code failing checks

* changed the validation for .java-version type
---
 dist/cleanup/index.js | 11 ++++++-----
 dist/setup/index.js   | 11 ++++++-----
 src/util.ts           | 12 ++++++++----
 3 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/dist/cleanup/index.js b/dist/cleanup/index.js
index fc0b1d199..c90128bb6 100644
--- a/dist/cleanup/index.js
+++ b/dist/cleanup/index.js
@@ -88355,15 +88355,16 @@ exports.isCacheFeatureAvailable = isCacheFeatureAvailable;
 function getVersionFromFileContent(content, distributionName, versionFile) {
     var _a, _b, _c, _d, _e;
     let javaVersionRegExp;
-    if (versionFile == '.tool-versions') {
+    function getFileName(versionFile) {
+        return path_1.default.basename(versionFile);
+    }
+    const versionFileName = getFileName(versionFile);
+    if (versionFileName == '.tool-versions') {
         javaVersionRegExp =
             /^(java\s+)(?:\S*-)?v?(?<version>(\d+)(\.\d+)?(\.\d+)?(\+\d+)?(-ea(\.\d+)?)?)$/m;
     }
-    else if (versionFile == '.java-version') {
-        javaVersionRegExp = /(?<version>(?<=(^|\s|-))(\d+\S*))(\s|$)/;
-    }
     else {
-        throw new Error('Invalid version file');
+        javaVersionRegExp = /(?<version>(?<=(^|\s|-))(\d+\S*))(\s|$)/;
     }
     const fileContent = ((_b = (_a = content.match(javaVersionRegExp)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.version)
         ? (_d = (_c = content.match(javaVersionRegExp)) === null || _c === void 0 ? void 0 : _c.groups) === null || _d === void 0 ? void 0 : _d.version
diff --git a/dist/setup/index.js b/dist/setup/index.js
index 55a096494..13023489c 100644
--- a/dist/setup/index.js
+++ b/dist/setup/index.js
@@ -125729,15 +125729,16 @@ exports.isCacheFeatureAvailable = isCacheFeatureAvailable;
 function getVersionFromFileContent(content, distributionName, versionFile) {
     var _a, _b, _c, _d, _e;
     let javaVersionRegExp;
-    if (versionFile == '.tool-versions') {
+    function getFileName(versionFile) {
+        return path_1.default.basename(versionFile);
+    }
+    const versionFileName = getFileName(versionFile);
+    if (versionFileName == '.tool-versions') {
         javaVersionRegExp =
             /^(java\s+)(?:\S*-)?v?(?<version>(\d+)(\.\d+)?(\.\d+)?(\+\d+)?(-ea(\.\d+)?)?)$/m;
     }
-    else if (versionFile == '.java-version') {
-        javaVersionRegExp = /(?<version>(?<=(^|\s|-))(\d+\S*))(\s|$)/;
-    }
     else {
-        throw new Error('Invalid version file');
+        javaVersionRegExp = /(?<version>(?<=(^|\s|-))(\d+\S*))(\s|$)/;
     }
     const fileContent = ((_b = (_a = content.match(javaVersionRegExp)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.version)
         ? (_d = (_c = content.match(javaVersionRegExp)) === null || _c === void 0 ? void 0 : _c.groups) === null || _d === void 0 ? void 0 : _d.version
diff --git a/src/util.ts b/src/util.ts
index e02cea6d9..034fc83d4 100644
--- a/src/util.ts
+++ b/src/util.ts
@@ -119,13 +119,17 @@ export function getVersionFromFileContent(
   versionFile: string
 ): string | null {
   let javaVersionRegExp: RegExp;
-  if (versionFile == '.tool-versions') {
+
+  function getFileName(versionFile: string) {
+    return path.basename(versionFile);
+  }
+
+  const versionFileName = getFileName(versionFile);
+  if (versionFileName == '.tool-versions') {
     javaVersionRegExp =
       /^(java\s+)(?:\S*-)?v?(?<version>(\d+)(\.\d+)?(\.\d+)?(\+\d+)?(-ea(\.\d+)?)?)$/m;
-  } else if (versionFile == '.java-version') {
-    javaVersionRegExp = /(?<version>(?<=(^|\s|-))(\d+\S*))(\s|$)/;
   } else {
-    throw new Error('Invalid version file');
+    javaVersionRegExp = /(?<version>(?<=(^|\s|-))(\d+\S*))(\s|$)/;
   }
 
   const fileContent = content.match(javaVersionRegExp)?.groups?.version