diff --git a/src/main/java/it/inaf/ia2/transfer/service/ArchiveService.java b/src/main/java/it/inaf/ia2/transfer/service/ArchiveService.java index 748e2ef43f2b7be09221064624781117098a6bd1..ec99bfc6c449c08cd38782be14ac7079f88feda9 100644 --- a/src/main/java/it/inaf/ia2/transfer/service/ArchiveService.java +++ b/src/main/java/it/inaf/ia2/transfer/service/ArchiveService.java @@ -146,7 +146,7 @@ public class ArchiveService { if (!vosPaths.isEmpty()) { for (FileInfo fileInfo : fileDAO.getArchiveFileInfos(vosPaths)) { - String relPath = fileInfo.getVirtualPath().substring(commonParent.length()); + String relPath = fileInfo.getVirtualPath().substring(commonParent.length()); this.insertEntryIntoArchive(fileInfo, supportDir, relPath, tokenPrincipal, portalLocationUrls, servletRequest, handler); @@ -173,7 +173,7 @@ public class ArchiveService { String relPath = vosPath.substring(commonParent.length()); - + this.insertEntryIntoArchive(fileInfo, supportDir, relPath, tokenPrincipal, portalLocationUrls, servletRequest, handler); } @@ -254,6 +254,11 @@ public class ArchiveService { List<String> vosPaths = entryDescriptors.stream().map(ed -> ed.getVosPath()) .collect(Collectors.toList()); + + if(vosPaths.size() == 1) { + String vosPath = vosPaths.get(0); + return vosPath.substring(0, vosPath.lastIndexOf("/")); + } String commonParent = null; for (String vosPath : vosPaths) { @@ -312,7 +317,7 @@ public class ArchiveService { } @Override - public TarEntry getEntry(File file, String path) { + public TarEntry getEntry(File file, String path) { return new TarEntry(file, path); }