From eac0a8c0f39a3be8196511ab91581e72fe004727 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Sa=C4=9Flam?= Date: Fri, 14 Oct 2022 16:58:52 +0200 Subject: [PATCH 1/2] Fix debug mode to work even with the subdirectory argument and multiple root directories. --- core/src/main/java/de/jplag/Submission.java | 13 +++++-------- .../test/java/de/jplag/InvalidSubmissionTest.java | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/de/jplag/Submission.java b/core/src/main/java/de/jplag/Submission.java index 65cc80bfb..f72afdc7e 100644 --- a/core/src/main/java/de/jplag/Submission.java +++ b/core/src/main/java/de/jplag/Submission.java @@ -3,6 +3,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; import java.util.Collection; import java.util.Collections; import java.util.HashSet; @@ -209,9 +210,8 @@ public String toString() { * This method is used to copy files that can not be parsed to a special folder. */ private void copySubmission() { - File rootDirectory = submissionRootFile.getParentFile(); - assert rootDirectory != null; - File submissionDirectory = createSubdirectory(rootDirectory, ERROR_FOLDER, language.getIdentifier(), name); + File submissionDirectory = createSubdirectory(ERROR_FOLDER, language.getIdentifier(), name); + logger.info("Copying erroneous submission to " + submissionDirectory.getAbsolutePath()); for (File file : files) { try { Files.copy(file.toPath(), new File(submissionDirectory, file.getName()).toPath()); @@ -221,11 +221,8 @@ private void copySubmission() { } } - private static File createSubdirectory(File parent, String... subdirectoryNames) { - File subdirectory = parent; - for (String name : subdirectoryNames) { - subdirectory = new File(subdirectory, name); - } + private static File createSubdirectory(String... subdirectoryNames) { + File subdirectory = Path.of("", subdirectoryNames).toFile(); if (!subdirectory.exists()) { subdirectory.mkdirs(); } diff --git a/core/src/test/java/de/jplag/InvalidSubmissionTest.java b/core/src/test/java/de/jplag/InvalidSubmissionTest.java index 27f8dfba6..4b829e7e1 100644 --- a/core/src/test/java/de/jplag/InvalidSubmissionTest.java +++ b/core/src/test/java/de/jplag/InvalidSubmissionTest.java @@ -29,7 +29,7 @@ void testInvalidSubmissionsWithDebug() throws ExitException { } catch (SubmissionException e) { System.out.println(e.getMessage()); } finally { - File errorFolder = new File(Path.of(BASE_PATH, SAMPLE_NAME, "errors", "java").toString()); + File errorFolder = new File(Path.of("errors", "java").toString()); assertTrue(errorFolder.exists()); String[] errorSubmissions = errorFolder.list(); if (errorSubmissions != null) From 4ff45c1f760d42b8570c21e6e5a1ec96468db01d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Sa=C4=9Flam?= Date: Fri, 14 Oct 2022 17:05:18 +0200 Subject: [PATCH 2/2] Adapt naming to the changed error directory. --- core/src/main/java/de/jplag/Submission.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/de/jplag/Submission.java b/core/src/main/java/de/jplag/Submission.java index f72afdc7e..576af0fbd 100644 --- a/core/src/main/java/de/jplag/Submission.java +++ b/core/src/main/java/de/jplag/Submission.java @@ -210,19 +210,19 @@ public String toString() { * This method is used to copy files that can not be parsed to a special folder. */ private void copySubmission() { - File submissionDirectory = createSubdirectory(ERROR_FOLDER, language.getIdentifier(), name); - logger.info("Copying erroneous submission to " + submissionDirectory.getAbsolutePath()); + File errorDirectory = createErrorDirectory(language.getIdentifier(), name); + logger.info("Copying erroneous submission to {}", errorDirectory.getAbsolutePath()); for (File file : files) { try { - Files.copy(file.toPath(), new File(submissionDirectory, file.getName()).toPath()); + Files.copy(file.toPath(), new File(errorDirectory, file.getName()).toPath()); } catch (IOException exception) { logger.error("Error copying file: " + exception.getMessage(), exception); } } } - private static File createSubdirectory(String... subdirectoryNames) { - File subdirectory = Path.of("", subdirectoryNames).toFile(); + private static File createErrorDirectory(String... subdirectoryNames) { + File subdirectory = Path.of(ERROR_FOLDER, subdirectoryNames).toFile(); if (!subdirectory.exists()) { subdirectory.mkdirs(); }