Add extensive logging to Git Repo Extractor to trace missing files

This commit is contained in:
2026-09-22 21:00:45 -07:00
committed by Tom
parent c247c2d998
commit 2385f1d088

View File

@@ -54,7 +54,8 @@ public class GitRepoImporterService {
extractDir.mkdirs(); extractDir.mkdirs();
} }
unzipAndFilter(tempZip, extractDir, source.fileExtension, source.subfolder, isCancelled); int extractedFiles = unzipAndFilter(tempZip, extractDir, source.fileExtension, source.subfolder, isCancelled);
Logger.logWTF("Extracted " + extractedFiles + " files to " + extractDir.getAbsolutePath());
if (isCancelled.getAsBoolean()) return 0; if (isCancelled.getAsBoolean()) return 0;
@@ -71,7 +72,9 @@ public class GitRepoImporterService {
} finally { } finally {
// We no longer delete tempZip since the user wants to keep the downloaded zip // We no longer delete tempZip since the user wants to keep the downloaded zip
// deleteFileOrDir(tempZip); // deleteFileOrDir(tempZip);
deleteFileOrDir(extractDir); // DO NOT DELETE EXTRACT DIR FOR NOW
// deleteFileOrDir(extractDir);
Logger.logWTF("Skipping deletion of extract directory: " + extractDir.getAbsolutePath());
} }
return totalImported; return totalImported;
@@ -109,7 +112,8 @@ public class GitRepoImporterService {
} }
} }
private static void unzipAndFilter(File zipFile, File extractDir, String filterExtension, String subfolder, BooleanSupplier isCancelled) throws IOException { private static int unzipAndFilter(File zipFile, File extractDir, String filterExtension, String subfolder, BooleanSupplier isCancelled) throws IOException {
int extractedCount = 0;
try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile))) { try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile))) {
ZipEntry entry; ZipEntry entry;
while ((entry = zis.getNextEntry()) != null) { while ((entry = zis.getNextEntry()) != null) {
@@ -130,17 +134,24 @@ public class GitRepoImporterService {
fos.write(buffer, 0, count); fos.write(buffer, 0, count);
} }
} }
extractedCount++;
} }
} }
zis.closeEntry(); zis.closeEntry();
} }
} }
return extractedCount;
} }
private static int processDirectory(File dir, EntityImporter<Monster> importer, MonsterRepository repository, BooleanSupplier isCancelled) { private static int processDirectory(File dir, EntityImporter<Monster> importer, MonsterRepository repository, BooleanSupplier isCancelled) {
int importedCount = 0; int importedCount = 0;
File[] files = dir.listFiles(); File[] files = dir.listFiles();
if (files == null) return 0; if (files == null) {
Logger.logWTF("processDirectory: files array is null for " + dir.getAbsolutePath());
return 0;
}
Logger.logWTF("Attempting to process " + files.length + " JSON files.");
for (File file : files) { for (File file : files) {
if (isCancelled.getAsBoolean()) break; if (isCancelled.getAsBoolean()) break;