Skip to content

Commit de42197

Browse files
committed
ConcurrentModificationException fixed.
Signed-off-by: Pavel Erokhin (MairwunNx) <MairwunNx@gmail.com>
1 parent 41ef61e commit de42197

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

src/main/kotlin/com/mairwunnx/projectessentials/backup/BackupController.kt

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ import com.mairwunnx.projectessentials.backup.configuration.BackupConfigurationC
44
import kotlinx.coroutines.*
55
import net.minecraftforge.api.distmarker.Dist
66
import net.minecraftforge.fml.DistExecutor
7+
import org.apache.logging.log4j.LogManager
78
import org.zeroturnaround.zip.ZipUtil
89
import java.io.File
910
import java.text.SimpleDateFormat
1011
import java.util.*
1112

1213
object BackupController {
14+
private val logger = LogManager.getLogger()
1315
private lateinit var job: Job
1416
var isFirstLaunch = true
1517

@@ -104,13 +106,23 @@ object BackupController {
104106
private fun makeBackup(path: String) {
105107
val configuration = BackupConfigurationController.get()
106108

107-
EntryPoint.serverInstance.save(true, false, true)
109+
runBlocking {
110+
val savingJob = launch(Dispatchers.Default) {
111+
EntryPoint.serverInstance.save(false, false, true)
112+
}
113+
savingJob.invokeOnCompletion {
114+
val savingPath = buildFilePathName(path)
115+
logger.info("Saving backup as $savingPath")
116+
117+
ZipUtil.pack(
118+
File(path),
119+
File(buildFilePathName(path)),
120+
configuration.backupCompressionLevel
121+
)
122+
}
108123

109-
ZipUtil.pack(
110-
File(path),
111-
File(buildFilePathName(path)),
112-
configuration.backupCompressionLevel
113-
)
124+
savingJob.start()
125+
}
114126
}
115127

116128
private fun buildFilePathName(path: String): String {

0 commit comments

Comments
 (0)