From 816d8a3ada149acf061b8a594ab24a39d1d782c5 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Tue, 18 Dec 2018 08:12:46 +0000
Subject: [PATCH] Sorting of file lists again (if wrong order in cached archive).

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/cache/ArchiveFilelistCache.java |    2 +-
 borgbutler-core/src/test/java/de/micromata/borgbutler/data/FileSystemFilterTest.java  |    6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

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 36527fd..aab4900 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,6 @@
 
     @Getter
     private Archive archive;
-    private List<BorgFilesystemItem> content;
 
     public void save(BorgRepoConfig repoConfig, Archive archive, List<BorgFilesystemItem> filesystemItems) {
         File file = getFile(repoConfig, archive);
@@ -128,6 +127,7 @@
         } catch (IOException | ClassNotFoundException ex) {
             log.error("Error while reading file list '" + file.getAbsolutePath() + "': " + ex.getMessage(), ex);
         }
+        Collections.sort(list); // Sort by path (if archive list order wasn't correct).
         log.info("Loading done.");
         if (filter != null) {
             return filter.reduce(list);
diff --git a/borgbutler-core/src/test/java/de/micromata/borgbutler/data/FileSystemFilterTest.java b/borgbutler-core/src/test/java/de/micromata/borgbutler/data/FileSystemFilterTest.java
index 83622a5..3454bc0 100644
--- a/borgbutler-core/src/test/java/de/micromata/borgbutler/data/FileSystemFilterTest.java
+++ b/borgbutler-core/src/test/java/de/micromata/borgbutler/data/FileSystemFilterTest.java
@@ -38,7 +38,9 @@
             }
         }
         list = filter.reduce(list);
-        assertEquals(2, list.size());
+        assertEquals(4, list.size());
+        assertEquals(".bashrc", list.get(0).getDisplayPath());
+        assertEquals(".borgbutler", list.get(1).getDisplayPath());
 
     }
 
@@ -55,6 +57,8 @@
     private List<BorgFilesystemItem> createList() {
         List<BorgFilesystemItem> list = new ArrayList<>();
         list.add(create("home", true));
+        list.add(create("home/.bashrc", false));
+        list.add(create("home/.borgbutler", true));
         list.add(create("home/admin", false));
         list.add(create("home/kai", true));
         list.add(create("home/kai/borg/cache", false));

--
Gitblit v1.10.0