From 52e7a16721b90575c2425db04484ef2a258cc03c Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Sun, 09 Dec 2018 17:37:20 +0000
Subject: [PATCH] ...

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java               |    5 +++--
 borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ArchiveFileListCache.java |    7 ++++++-
 borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java            |    1 +
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
index 6185d2a..1ee5061 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
@@ -76,7 +76,7 @@
         String response = outputStream.toString(Definitions.STD_CHARSET);
         try {
             IOUtils.copy(new StringReader(response), new FileWriter("response.json"));
-        }catch (IOException ex) {
+        } catch (IOException ex) {
 
         }
         List<FilesystemItem> content = new ArrayList<>();
@@ -101,7 +101,8 @@
         CommandLine cmdLine = new CommandLine(ConfigurationHandler.getConfiguration().getBorgCommand());
         cmdLine.addArgument(command);
         for (String arg : args) {
-            cmdLine.addArgument(arg);
+            if (arg != null)
+                cmdLine.addArgument(arg);
         }
         cmdLine.addArgument(repoOrArchive);
         DefaultExecutor executor = new DefaultExecutor();
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ArchiveFileListCache.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ArchiveFileListCache.java
index fbe2d34..c60288d 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ArchiveFileListCache.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ArchiveFileListCache.java
@@ -32,7 +32,12 @@
             this.content = BorgCommands.list(repoConfig, archive);
             save();
         }
-        return content;
+        List<FilesystemItem> result = this.content;
+        if (content != null && content.size() > 100000) {
+            // Don't waste the memory space...
+            this.content = null;
+        }
+        return result;
     }
 
     protected void update(AbstractCache readCache) {
diff --git a/borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java b/borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java
index 4f931f4..132765a 100644
--- a/borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java
+++ b/borgbutler-core/src/test/java/de/micromata/borgbutler/cache/CacheTest.java
@@ -72,6 +72,7 @@
             if (archive != null) {
                 List<FilesystemItem> content = ButlerCache.getInstance().getArchiveContent(repoConfig, archive);
                 log.info("Number of items (content) of archive: " + content.size());
+                content = ButlerCache.getInstance().getArchiveContent(repoConfig, archive);
             }
         }
         butlerCache.save();

--
Gitblit v1.10.0