Skip to content

Commit 2c91ed9

Browse files
committed
CheckBundle after uploadFiles to ensure no missingFiles left
1 parent 1929824 commit 2c91ed9

File tree

1 file changed

+56
-23
lines changed

1 file changed

+56
-23
lines changed

src/main/java/ai/deepcode/jbplugin/core/AnalysisData.java

Lines changed: 56 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,8 @@ public static void updateCachedResultsForFiles(
208208
updateInProgress = false;
209209

210210
} finally {
211-
//if (filesToProceed != null && !filesToProceed.isEmpty())
212-
info("MUTEX RELEASED");
211+
// if (filesToProceed != null && !filesToProceed.isEmpty())
212+
info("MUTEX RELEASED");
213213
MUTEX.unlock();
214214
}
215215
}
@@ -290,21 +290,57 @@ private static Map<PsiFile, List<SuggestionForFile>> retrieveSuggestions(
290290
if (isNotSucceed(project, createBundleResponse, "Bad Create/Extend Bundle request: "))
291291
return EMPTY_MAP;
292292
final String bundleId = createBundleResponse.getBundleId();
293-
final List<String> missingFiles = createBundleResponse.getMissingFiles();
293+
List<String> missingFiles = createBundleResponse.getMissingFiles();
294294
info(
295295
"--- Create/Extend Bundle took: "
296296
+ (System.currentTimeMillis() - startTime)
297297
+ " milliseconds"
298-
+ "\nbundleId: " + bundleId
299-
+ "\nmissingFiles: " + missingFiles.size());
298+
+ "\nbundleId: "
299+
+ bundleId
300+
+ "\nmissingFiles: "
301+
+ missingFiles.size());
300302

301303
// ---------------------------------------- Upload Files
302304
startTime = System.currentTimeMillis();
303305
progress.setText(UPLOADING_FILES_TEXT);
304306
ProgressManager.checkCanceled();
305307

306-
fileCounter = 0;
307-
totalFiles = missingFiles.size();
308+
for (int counter = 0; counter < 10; counter++) {
309+
uploadFiles(project, psiFiles, missingFiles, bundleId, progress);
310+
missingFiles = checkBundle(project, bundleId, progress);
311+
if (missingFiles.isEmpty()) {
312+
break;
313+
} else {
314+
warn(
315+
"Check Bundle found some missingFiles to be NOT uploaded, will try to upload "
316+
+ (10 - counter)
317+
+ " more times:\nmissingFiles = "
318+
+ missingFiles);
319+
}
320+
}
321+
// mapPsiFile2Hash.clear();
322+
mapPsiFile2Content.clear();
323+
info("--- Upload Files took: " + (System.currentTimeMillis() - startTime) + " milliseconds");
324+
325+
// ---------------------------------------- Get Analysis
326+
startTime = System.currentTimeMillis();
327+
progress.setText(WAITING_FOR_ANALYSIS_TEXT);
328+
ProgressManager.checkCanceled();
329+
GetAnalysisResponse getAnalysisResponse = doRetrieveSuggestions(project, bundleId, progress);
330+
result = parseGetAnalysisResponse(project, psiFiles, getAnalysisResponse, progress);
331+
info("--- Get Analysis took: " + (System.currentTimeMillis() - startTime) + " milliseconds");
332+
// progress.stop();
333+
return result;
334+
}
335+
336+
private static void uploadFiles(
337+
@NotNull Project project,
338+
@NotNull Collection<PsiFile> psiFiles,
339+
@NotNull List<String> missingFiles,
340+
@NotNull String bundleId,
341+
@NotNull ProgressIndicator progress) {
342+
int fileCounter = 0;
343+
int totalFiles = missingFiles.size();
308344
long fileChunkSize = 0;
309345
int brokenMissingFilesCount = 0;
310346
String brokenMissingFilesMessage = "";
@@ -337,7 +373,7 @@ private static Map<PsiFile, List<SuggestionForFile>> retrieveSuggestions(
337373
final long fileSize = psiFile.getVirtualFile().getLength();
338374
if (fileChunkSize + fileSize > MAX_BUNDLE_SIZE) {
339375
info("Files-chunk size: " + fileChunkSize);
340-
uploadFiles(project, filesChunk, bundleId, progress);
376+
doUploadFiles(project, filesChunk, bundleId, progress);
341377
fileChunkSize = 0;
342378
filesChunk.clear();
343379
}
@@ -346,21 +382,18 @@ private static Map<PsiFile, List<SuggestionForFile>> retrieveSuggestions(
346382
}
347383
if (brokenMissingFilesCount > 0) warn(brokenMissingFilesCount + brokenMissingFilesMessage);
348384
info("Last files-chunk size: " + fileChunkSize);
349-
uploadFiles(project, filesChunk, bundleId, progress);
350-
351-
// mapPsiFile2Hash.clear();
352-
mapPsiFile2Content.clear();
353-
info("--- Upload Files took: " + (System.currentTimeMillis() - startTime) + " milliseconds");
385+
doUploadFiles(project, filesChunk, bundleId, progress);
386+
}
354387

355-
// ---------------------------------------- Get Analysis
356-
startTime = System.currentTimeMillis();
357-
progress.setText(WAITING_FOR_ANALYSIS_TEXT);
358-
ProgressManager.checkCanceled();
359-
GetAnalysisResponse getAnalysisResponse = doRetrieveSuggestions(project, bundleId, progress);
360-
result = parseGetAnalysisResponse(project, psiFiles, getAnalysisResponse, progress);
361-
info("--- Get Analysis took: " + (System.currentTimeMillis() - startTime) + " milliseconds");
362-
// progress.stop();
363-
return result;
388+
@NotNull
389+
private static List<String> checkBundle(
390+
@NotNull Project project, @NotNull String bundleId, @NotNull ProgressIndicator progress) {
391+
CreateBundleResponse checkBundleResponse =
392+
DeepCodeRestApi.checkBundle(DeepCodeParams.getSessionToken(), bundleId);
393+
if (isNotSucceed(project, checkBundleResponse, "Bad CheckBundle request: ")) {
394+
return Collections.emptyList();
395+
}
396+
return checkBundleResponse.getMissingFiles();
364397
}
365398

366399
private static CreateBundleResponse makeNewBundle(
@@ -481,7 +514,7 @@ private static String doGetFileContent(@NotNull PsiFile psiFile) {
481514
*/
482515
}
483516

484-
private static void uploadFiles(
517+
private static void doUploadFiles(
485518
@NotNull Project project,
486519
@NotNull Collection<PsiFile> psiFiles,
487520
@NotNull String bundleId,

0 commit comments

Comments
 (0)