From 6289ae329bf6765844ecc1b30e48a303ce682470 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Thu, 1 Dec 2022 15:27:41 +0100 Subject: [PATCH] fix a race-condition --- .../extractor/src/com/semmle/js/extractor/AutoBuild.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java index 445f1116ec7..bf5b4e8cb03 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java +++ b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java @@ -446,7 +446,8 @@ public class AutoBuild { public int run() throws IOException { startThreadPool(); try { - extractSource(); + CompletableFuture sourceFuture = extractSource(); + sourceFuture.join(); // wait for source extraction to complete if (hasSeenCode()) { // don't bother with the externs if no code was seen extractExterns(); } @@ -589,7 +590,7 @@ public class AutoBuild { } /** Extract all supported candidate files that pass the filters. */ - private void extractSource() throws IOException { + private CompletableFuture extractSource() throws IOException { // default extractor FileExtractor defaultExtractor = new FileExtractor(mkExtractorConfig(), outputConfig, trapCache); @@ -636,7 +637,7 @@ public class AutoBuild { boolean hasTypeScriptFiles = extractedFiles.size() > 0; // extract remaining files - extractFiles( + return extractFiles( filesToExtract, extractedFiles, extractors, f -> !(hasTypeScriptFiles && isFileDerivedFromTypeScriptFile(f, extractedFiles))); }