Skip to content

Commit

Permalink
Delete client log files when deleting workspace (#3374)
Browse files Browse the repository at this point in the history
Signed-off-by: Snjezana Peco <[email protected]>
  • Loading branch information
snjeza committed Nov 8, 2023
1 parent 6bb208c commit c3c57e7
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import { snippetCompletionProvider } from './snippetCompletionProvider';
import { JavaClassEditorProvider } from './javaClassEditor';
import { StandardLanguageClient } from './standardLanguageClient';
import { SyntaxLanguageClient } from './syntaxLanguageClient';
import { convertToGlob, deleteDirectory, ensureExists, getBuildFilePatterns, getExclusionBlob, getInclusionPatternsFromNegatedExclusion, getJavaConfig, getJavaConfiguration, hasBuildToolConflicts } from './utils';
import { convertToGlob, deleteClientLog, deleteDirectory, ensureExists, getBuildFilePatterns, getExclusionBlob, getInclusionPatternsFromNegatedExclusion, getJavaConfig, getJavaConfiguration, hasBuildToolConflicts } from './utils';
import glob = require('glob');
import { Telemetry } from './telemetry';
import { getMessage } from './errorUtils';
Expand Down Expand Up @@ -110,7 +110,12 @@ export async function activate(context: ExtensionContext): Promise<ExtensionAPI>
if (!storagePath) {
storagePath = getTempWorkspace();
}
const workspacePath = path.resolve(`${storagePath}/jdt_ws`);
clientLogFile = path.join(storagePath, 'client.log');
const cleanWorkspaceExists = fs.existsSync(path.join(workspacePath, cleanWorkspaceFileName));
if (cleanWorkspaceExists) {
deleteClientLog(storagePath);
}
initializeLogFile(clientLogFile);

const telemetryService: Promise<TelemetryService> = Telemetry.startTelemetry(context);
Expand All @@ -137,7 +142,6 @@ export async function activate(context: ExtensionContext): Promise<ExtensionAPI>
}).then(async (requirements) => {
const triggerFiles = await getTriggerFiles();
return new Promise<ExtensionAPI>(async (resolve) => {
const workspacePath = path.resolve(`${storagePath}/jdt_ws`);
const syntaxServerWorkspacePath = path.resolve(`${storagePath}/ss_ws`);

let serverMode = getJavaServerMode();
Expand Down Expand Up @@ -254,7 +258,7 @@ export async function activate(context: ExtensionContext): Promise<ExtensionAPI>
errorHandler: new ClientErrorHandler(extensionName),
initializationFailedHandler: error => {
logger.error(`Failed to initialize ${extensionName} due to ${error && error.toString()}`);
if (error.toString().includes('Connection') && error.toString().includes('disposed')) {
if ((error.toString().includes('Connection') && error.toString().includes('disposed')) || error.toString().includes('Internal error')) {
if (!initFailureReported) {
apiManager.fireTraceEvent({
name: "java.client.error.initialization",
Expand Down Expand Up @@ -315,7 +319,6 @@ export async function activate(context: ExtensionContext): Promise<ExtensionAPI>
}
}));

const cleanWorkspaceExists = fs.existsSync(path.join(workspacePath, cleanWorkspaceFileName));
if (cleanWorkspaceExists) {
const data = {};
try {
Expand Down Expand Up @@ -1049,3 +1052,5 @@ function registerRestartJavaLanguageServerCommand(context: ExtensionContext) {
}
}));
}


13 changes: 13 additions & 0 deletions src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,19 @@ export function deleteDirectory(dir) {
}
}

export function deleteClientLog(dir) {
if (fs.existsSync(dir)) {
fs.readdirSync(dir).forEach((child) => {
if (child.startsWith('client.log') || child.endsWith('audit.json')) {
const entry = path.join(dir, child);
if (!fs.lstatSync(entry).isDirectory()) {
fs.unlinkSync(entry);
}
}
});
}
}

export function getTimestamp(file) {
if (!fs.existsSync(file)) {
return -1;
Expand Down

0 comments on commit c3c57e7

Please sign in to comment.