Improve SessionLogFileWriter to create a non-existing folder Change-Id: I8afbf9489f6e8b5d425240edc04bd1c20969d7f5 Signed-off-by: Dirk Fauth <dirk.fauth@de.bosch.com>
diff --git a/plugins/org.eclipse.app4mc.util.sessionlog.file/src/org/eclipse/app4mc/util/sessionlog/file/SessionLogFileWriter.java b/plugins/org.eclipse.app4mc.util.sessionlog.file/src/org/eclipse/app4mc/util/sessionlog/file/SessionLogFileWriter.java index bae1464..e4ae657 100644 --- a/plugins/org.eclipse.app4mc.util.sessionlog.file/src/org/eclipse/app4mc/util/sessionlog/file/SessionLogFileWriter.java +++ b/plugins/org.eclipse.app4mc.util.sessionlog.file/src/org/eclipse/app4mc/util/sessionlog/file/SessionLogFileWriter.java
@@ -18,6 +18,9 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.List; import org.eclipse.app4mc.util.sessionlog.SessionLogEntry; @@ -40,6 +43,17 @@ @Override public void write(File sessionLogFile, List<SessionLogEntry> log) { + Path parentPath = Paths.get(sessionLogFile.getAbsolutePath()).getParent(); + if (!Files.exists(parentPath)) { + try { + Files.createDirectories(parentPath); + } catch (IOException e) { + if (this.logger != null) { + this.logger.error("Failed to create the output folder for the session log file", e); + } + } + } + try (BufferedWriter writer = new BufferedWriter(new FileWriter(sessionLogFile))) { for (SessionLogEntry logEntry : log) { writer.append(logEntry.message);