Skip to content

Commit bd61dc6

Browse files
Log the error details when initialization failed (#3472)
1 parent fa2a63c commit bd61dc6

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/extension.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import { snippetCompletionProvider } from './snippetCompletionProvider';
2929
import { JavaClassEditorProvider } from './javaClassEditor';
3030
import { StandardLanguageClient } from './standardLanguageClient';
3131
import { SyntaxLanguageClient } from './syntaxLanguageClient';
32-
import { convertToGlob, deleteClientLog, deleteDirectory, ensureExists, getBuildFilePatterns, getExclusionGlob, getInclusionPatternsFromNegatedExclusion, getJavaConfig, getJavaConfiguration, hasBuildToolConflicts } from './utils';
32+
import { convertToGlob, deleteClientLog, deleteDirectory, ensureExists, getBuildFilePatterns, getExclusionGlob, getInclusionPatternsFromNegatedExclusion, getJavaConfig, getJavaConfiguration, hasBuildToolConflicts, resolveActualCause } from './utils';
3333
import glob = require('glob');
3434
import { Telemetry } from './telemetry';
3535
import { getMessage } from './errorUtils';
@@ -272,6 +272,7 @@ export async function activate(context: ExtensionContext): Promise<ExtensionAPI>
272272
name: "java.client.error.initialization",
273273
properties: {
274274
message: error && error.toString(),
275+
data: resolveActualCause(error?.data),
275276
},
276277
});
277278
}

src/utils.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,3 +299,20 @@ async function addAutoDetectedJdks(configuredJREs: any[]): Promise<any[]> {
299299

300300
return configuredJREs;
301301
}
302+
303+
export function resolveActualCause(callstack: any): any {
304+
if (!callstack) {
305+
return;
306+
}
307+
308+
const callstacks = callstack.split(/\r?\n/);
309+
if (callstacks?.length) {
310+
for (let i = callstacks.length - 1; i >= 0; i--) {
311+
if (callstacks[i]?.startsWith("Caused by:")) {
312+
return callstacks.slice(i).join("\n");
313+
}
314+
}
315+
}
316+
317+
return callstack;
318+
}

0 commit comments

Comments
 (0)