From 776fdaa788e0848a665e264b9be5453ce04bf97d Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Thu, 24 Jan 2019 21:39:52 +0000
Subject: [PATCH] autoChangeDirectoryToLeafItem works now also for empty leaf directories.

---
 borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/BorgFilesystemItem.java |   24 ++++++++++++++++++++++++
 borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java        |    5 +++--
 2 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java
index aeeb75a..7c96a68 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java
@@ -119,8 +119,9 @@
                 if (topItem == null) {
                     log.error("Internal error, can't find subDirectory: " + topLevel);
                 } else {
-                    topItem.setDisplayPath(StringUtils.removeStart(topItem.getPath(), currentDirectory));
-                    list.add(topItem);
+                    BorgFilesystemItem cloneItem = autoChangeDirectoryToLeafItem ? topItem.clone() : topItem;
+                    cloneItem.setDisplayPath(StringUtils.removeStart(topItem.getPath(), currentDirectory));
+                    list.add(cloneItem);
                 }
             }
         }
diff --git a/borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/BorgFilesystemItem.java b/borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/BorgFilesystemItem.java
index 8d03c47..ad45f86 100644
--- a/borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/BorgFilesystemItem.java
+++ b/borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/BorgFilesystemItem.java
@@ -196,4 +196,28 @@
     public String toString() {
         return path;
     }
+
+    @Override
+    public BorgFilesystemItem clone() {
+        BorgFilesystemItem clone = new BorgFilesystemItem();
+        clone.type = this.type;
+        clone.mode = this.mode;
+        clone.user = this.user;
+        clone.group = this.group;
+        clone.uid = this.uid;
+        clone.gid = this.gid;
+        clone.path = this.path;
+        clone.displayPath = this.displayPath;
+        clone.healthy = this.healthy;
+        clone.source = this.source;
+        clone.linktarget = this.linktarget;
+        clone.flags = this.flags;
+        clone.mtime = this.mtime;
+        clone.size = this.size;
+        clone.fileNumber = this.fileNumber;
+        clone.diffStatus = this.diffStatus;
+        clone.diffItem = this.diffItem;
+        clone.differences = this.differences;
+        return clone;
+    }
 }

--
Gitblit v1.10.0