Skip to content

Commit 31a2f7d

Browse files
We create temporary files a lot, we have to clean it either (#1089)
1 parent 3e61474 commit 31a2f7d

File tree

3 files changed

+14
-9
lines changed
  • utbot-core/src/main/kotlin/org/utbot/common
  • utbot-framework/src/main/kotlin/org/utbot/engine/selectors/strategies
  • utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api

3 files changed

+14
-9
lines changed

utbot-core/src/main/kotlin/org/utbot/common/FileUtil.kt

+10-7
Original file line numberDiff line numberDiff line change
@@ -64,20 +64,23 @@ object FileUtil {
6464
* Deletes all the files and folders from the java unit-test temp directory that are older than [daysLimit].
6565
*/
6666
fun clearTempDirectory(daysLimit: Int) {
67-
val currentTimeInMillis = System.currentTimeMillis()
68-
69-
val files = utBotTempDirectory.toFile().listFiles() ?: return
67+
(utBotTempDirectory.toFile().listFiles() ?: return).filter { isOld(it, daysLimit) }
68+
.forEach { it.deleteRecursively() }
69+
}
7070

71-
files.filter {
72-
val creationTime = Files.readAttributes(it.toPath(), BasicFileAttributes::class.java).creationTime()
73-
TimeUnit.MILLISECONDS.toDays(currentTimeInMillis - creationTime.toMillis()) > daysLimit
74-
}.forEach { it.deleteRecursively() }
71+
private fun isOld(it: File, daysLimit: Int): Boolean {
72+
val creationTime = Files.readAttributes(it.toPath(), BasicFileAttributes::class.java).creationTime()
73+
return TimeUnit.MILLISECONDS.toDays(System.currentTimeMillis() - creationTime.toMillis()) > daysLimit
7574
}
7675

7776
fun createTempDirectory(prefix: String): Path {
7877
return createTempDirectory(utBotTempDirectory, prefix)
7978
}
8079

80+
fun createTempFile(prefix: String, suffix: String) : Path {
81+
return Files.createTempFile(utBotTempDirectory, prefix, suffix)
82+
}
83+
8184
/**
8285
* Copy the class file for given [classes] to temporary folder.
8386
* It can be used for Soot analysis.

utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api/Api.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import java.io.File
4040
import java.lang.reflect.Modifier
4141
import kotlin.contracts.ExperimentalContracts
4242
import kotlin.contracts.contract
43+
import org.utbot.common.FileUtil
4344

4445
const val SYMBOLIC_NULL_ADDR: Int = 0
4546

@@ -1303,7 +1304,7 @@ enum class CodegenLanguage(
13031304

13041305
// https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html#commandlineargfile
13051306
fun isolateCommandLineArgumentsToArgumentFile(arguments: List<String>): String {
1306-
val argumentFile = File.createTempFile("cmd-args", "")
1307+
val argumentFile = FileUtil.createTempFile("cmd-args", "").toFile()
13071308
argumentFile.writeText(
13081309
arguments.joinToString(" ") {
13091310
// If a filename contains embedded spaces, put the whole filename in double quotes,

utbot-framework/src/main/kotlin/org/utbot/engine/selectors/strategies/GraphViz.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import java.awt.datatransfer.StringSelection
1919
import java.io.FileWriter
2020
import java.nio.file.Files
2121
import java.nio.file.Paths
22+
import org.utbot.common.FileUtil
2223

2324
private val logger = KotlinLogging.logger {}
2425

@@ -29,7 +30,7 @@ class GraphViz(
2930
) : TraverseGraphStatistics(globalGraph) {
3031

3132
// Files
32-
private val graphVisDirectory = Files.createTempDirectory("Graph-vis")
33+
private val graphVisDirectory = FileUtil.createTempDirectory("Graph-vis")
3334
private val graphVisPathString = graphVisDirectory.toString()
3435
private val graphJs = Paths.get(graphVisPathString, "graph.js").toFile()
3536

0 commit comments

Comments
 (0)