Skip to content

Commit 7d67d15

Browse files
committed
fix: remove temp directory and file on jvm exit
1 parent 765fe47 commit 7d67d15

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/main/java/me/fponzi/tlaplusformatter/SANYWrapper.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ public static void loadSpecObject(SpecObj specObj, File file, StringWriter errBu
6565

6666

6767
private static File sanyTempDir() throws IOException {
68-
return Files.createTempDirectory("sanyimp").toFile();
68+
var tmpDir = Files.createTempDirectory("sanyimp").toFile();
69+
tmpDir.deleteOnExit();
70+
return tmpDir;
6971
}
7072

7173
private static void ThrowOnError(SpecObj specObj) {
@@ -91,6 +93,7 @@ private static class CustomFilenameToStream extends SimpleFilenameToStream {
9193
public CustomFilenameToStream(String parentDirPath) {
9294
super(parentDirPath);
9395
this.additionalPaths = getAdditionalModulePaths();
96+
this.tmpDir.toFile().deleteOnExit();
9497
}
9598

9699
private static List<String> getAdditionalModulePaths() {

src/main/java/me/fponzi/tlaplusformatter/TLAPlusFormatter.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,19 +115,23 @@ private void verifyAstPreservation() throws IOException {
115115
*/
116116
private static File storeForVerification(String content, File originalSpec) throws IOException {
117117
File parentDir = originalSpec.getAbsoluteFile().getParentFile();
118-
File tmpDir = java.nio.file.Files.createTempDirectory("sany-verify").toFile();
118+
File tmpDir = Files.createTempDirectory("sany-verify").toFile();
119+
tmpDir.deleteOnExit();
119120
// Copy sibling .tla files so SANY can resolve EXTENDS
120121
File[] siblings = parentDir.listFiles((dir, name) -> name.endsWith(".tla"));
121122
if (siblings != null) {
122123
for (File sibling : siblings) {
123-
java.nio.file.Files.copy(
124+
var dest = new File(tmpDir, sibling.getName());
125+
Files.copy(
124126
sibling.toPath(),
125-
new File(tmpDir, sibling.getName()).toPath(),
127+
dest.toPath(),
126128
java.nio.file.StandardCopyOption.REPLACE_EXISTING);
129+
dest.deleteOnExit();
127130
}
128131
}
129132
// Write the formatted output with the original filename (SANY requires module name = filename)
130133
File verifyFile = new File(tmpDir, originalSpec.getName());
134+
verifyFile.deleteOnExit();
131135
try (java.io.FileWriter writer = new java.io.FileWriter(verifyFile, StandardCharsets.UTF_8)) {
132136
writer.write(content);
133137
}
@@ -149,11 +153,13 @@ static String getModuleName(String spec) {
149153

150154
private static File storeToTmp(String spec) throws IOException {
151155
File tmpFolder = Files.createTempDirectory("sanyimp").toFile();
156+
tmpFolder.deleteOnExit();
152157
var fileName = getModuleName(spec) + ".tla";
153158
File tmpFile = new File(tmpFolder, fileName);
154159
try (java.io.FileWriter writer = new java.io.FileWriter(tmpFile, StandardCharsets.UTF_8)) {
155160
writer.write(spec);
156161
}
162+
tmpFile.deleteOnExit();
157163
return tmpFile;
158164
}
159165

0 commit comments

Comments
 (0)