From 7212d2e79df02c9da3e2e13fb7079822364c48fe Mon Sep 17 00:00:00 2001
From: Larbi Gharib <larbi.gharib@savoirfairelinux.com>
Date: Fri, 5 Mar 2021 23:48:49 +0100
Subject: [PATCH] Fix tmp folder exists

Change-Id: Ib4b9a1c0459346e8a965c022c203796cd258e642
---
 .../jams/server/update/UpdateDownloader.java  | 21 +++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/jams-server/src/main/java/net/jami/jams/server/update/UpdateDownloader.java b/jams-server/src/main/java/net/jami/jams/server/update/UpdateDownloader.java
index c4ae6ce6..5021bff8 100644
--- a/jams-server/src/main/java/net/jami/jams/server/update/UpdateDownloader.java
+++ b/jams-server/src/main/java/net/jami/jams/server/update/UpdateDownloader.java
@@ -103,14 +103,27 @@ public class UpdateDownloader {
 
         // temp folder for safe download and integrity check
         File tmpFolder = new File(System.getProperty("user.dir") + "/tmp/");
-        if(!tmpFolder.mkdirs()){
-            log.error("Could not create temporary folder to store the update files!");
-            return false;
-        }
 
+        if(!tmpFolder.exists()){
+            try {
+                tmpFolder.mkdirs();
+            } catch (Exception e) {
+                log.error("Error creating folder:" + e);
+                return false;
+            }
+        }
 
         files.forEach((k, v) -> {
             try {
+                File tmpFile = new File( System.getProperty("user.dir") + "/tmp/" + v.getFileName());
+                if(tmpFile.exists()){
+
+                    try{
+                        tmpFile.delete();
+                    } catch (Exception e) {
+                        log.warn("Error deleting file: " + v.getFileName() + " with error " + e);
+                    }
+                }
                 HttpClient httpClient = HttpClients.custom().setSSLContext(sslContext).build();
                 HttpResponse httpResponse = httpClient.execute(new HttpGet(UPDATE_SERVER_URL + "/updates/" + v.getFileName()));
                 if (httpResponse.getStatusLine().getStatusCode() != 200) return;
-- 
GitLab