Skip to content

Commit 7870e1f

Browse files
committed
Fixes community issue 575 - error finding java
Signed-off-by: Rob Stryker <rob@oxbeef.net>
1 parent 50759f4 commit 7870e1f

File tree

3 files changed

+18
-13
lines changed

3 files changed

+18
-13
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "vscode-server-connector",
33
"displayName": "Server Connector",
44
"description": "Allows to start, stop and deploy to Red Hat server and runtime products like Wildfly, JBoss EAP (Enterprise Application Platform), Minishift, CDK (Container Development Kit).",
5-
"version": "0.26.1",
5+
"version": "0.26.2",
66
"license": "SEE LICENSE IN LICENSE",
77
"publisher": "redhat",
88
"author": "Red Hat",

src/impl/requirements.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export async function resolveRequirements(minJavaVersion: number): Promise<Requi
6161
}
6262

6363
export async function resolveRequirementsImpl(minJavaVersion: number): Promise<RequirementsResult> {
64-
const javaHome: string | RspRequirementsRejection = checkJavaRuntime();
64+
const javaHome: string | RspRequirementsRejection = await checkJavaRuntime();
6565
if( (javaHome as any).rspReqReject) {
6666
return {rejection: javaHome as RspRequirementsRejection};
6767
}
@@ -75,7 +75,7 @@ export async function resolveRequirementsImpl(minJavaVersion: number): Promise<R
7575
return {data: data};
7676
}
7777

78-
function checkJavaRuntime(): string | RspRequirementsRejection {
78+
async function checkJavaRuntime(): Promise<string | RspRequirementsRejection> {
7979
let source: string;
8080
let javaHome: string | undefined = readJavaConfig();
8181
if (javaHome) {
@@ -100,13 +100,16 @@ function checkJavaRuntime(): string | RspRequirementsRejection {
100100
return javaHome;
101101
}
102102
// No settings, let's try to detect as last resort.
103-
findJavaHome((err: Error, home: string | PromiseLike<string>) => {
104-
if (err) {
105-
return getRejectionWithDownloadUrl('Java runtime could not be located');
106-
} else {
107-
return home;
108-
}
103+
const ret1 = await new Promise<string | RspRequirementsRejection>((resolve, reject) => {
104+
findJavaHome((err: Error, home: string | PromiseLike<string>) => {
105+
if (err) {
106+
resolve(getRejectionWithDownloadUrl('Java runtime could not be located'));
107+
} else {
108+
resolve(home);
109+
}
110+
});
109111
});
112+
return ret1;
110113
}
111114
function readJavaConfig(): string | undefined {
112115
const config = workspace.getConfiguration();
@@ -153,10 +156,12 @@ async function checkJavaVersion(javaHome: string, minJavaVersion: number):
153156
process.kill();
154157
} catch( e ) {
155158
}
156-
throw "Error getting java version for " + javaExecutable + ": 'java -version' did not return within " + (max/1000) + " seconds."
159+
const msg = "Error getting java version for " + javaExecutable + ": 'java -version' did not return within " + (max/1000) + " seconds."
160+
return getRejectionWithDownloadUrl(msg);
157161
}
158162
if( !ret ) {
159-
throw "Error getting java version for " + javaExecutable + ": 'java -version' output was unable to be parsed.";
163+
const msg = "Error getting java version for " + javaExecutable + ": 'java -version' output was unable to be parsed.";
164+
return getRejectionWithDownloadUrl(msg);
160165
}
161166
return ret;
162167
}

0 commit comments

Comments
 (0)