diff --git a/onedrive/src/main/java/ch/cyberduck/core/onedrive/AbstractDriveListService.java b/onedrive/src/main/java/ch/cyberduck/core/onedrive/AbstractDriveListService.java index cea7ed142ae..a0fa7f4a777 100644 --- a/onedrive/src/main/java/ch/cyberduck/core/onedrive/AbstractDriveListService.java +++ b/onedrive/src/main/java/ch/cyberduck/core/onedrive/AbstractDriveListService.java @@ -43,11 +43,7 @@ protected Path toPath(final Drive.Metadata metadata, final Path directory) { attributes.setSize(used); } } - String name = metadata.getName(); - if(StringUtils.isBlank(metadata.getName())) { - name = metadata.getId(); - } - return new Path(directory, name, EnumSet.of(Path.Type.directory, Path.Type.volume), attributes); + return new Path(directory, metadata.getName(), EnumSet.of(Path.Type.directory, Path.Type.volume), attributes); } @Override @@ -55,6 +51,9 @@ protected boolean filter(final Path directory, final Metadata metadata) { if(StringUtils.isBlank(metadata.getId())) { return false; } + if(StringUtils.isBlank(metadata.getName())) { + return false; + } return super.filter(directory, metadata); } } diff --git a/onedrive/src/main/java/ch/cyberduck/core/onedrive/AbstractItemListService.java b/onedrive/src/main/java/ch/cyberduck/core/onedrive/AbstractItemListService.java index c66e373936a..35d139a6bc5 100644 --- a/onedrive/src/main/java/ch/cyberduck/core/onedrive/AbstractItemListService.java +++ b/onedrive/src/main/java/ch/cyberduck/core/onedrive/AbstractItemListService.java @@ -25,7 +25,6 @@ import org.apache.commons.lang3.StringUtils; import org.nuxeo.onedrive.client.types.DriveItem; -import org.nuxeo.onedrive.client.types.DriveItem.Metadata; import java.util.EnumSet; @@ -53,8 +52,9 @@ protected Path toPath(final DriveItem.Metadata metadata, final Path directory) { } @Override - protected boolean filter(final Path directory, final Metadata metadata) { - if(StringUtils.isBlank(metadata.getId())) { + protected boolean filter(final Path directory, final DriveItem.Metadata metadata) { + // Don't filter on Id, as it is generated in toPath() from Session. + if(StringUtils.isBlank(metadata.getName())) { return false; } return super.filter(directory, metadata); diff --git a/onedrive/src/main/java/ch/cyberduck/core/onedrive/features/sharepoint/GroupListService.java b/onedrive/src/main/java/ch/cyberduck/core/onedrive/features/sharepoint/GroupListService.java index 6b3c14e843c..e7dac7c1c85 100644 --- a/onedrive/src/main/java/ch/cyberduck/core/onedrive/features/sharepoint/GroupListService.java +++ b/onedrive/src/main/java/ch/cyberduck/core/onedrive/features/sharepoint/GroupListService.java @@ -52,14 +52,7 @@ protected Iterator getIterator(final Path directory) { protected Path toPath(final GroupItem.Metadata metadata, final Path directory) { final PathAttributes attributes = new PathAttributes(); attributes.setFileId(metadata.getId()); - final String name; - if(StringUtils.isBlank(metadata.getDisplayName())) { - name = metadata.getId(); - } - else { - name = metadata.getDisplayName(); - } - return new Path(directory, name, EnumSet.of(Path.Type.volume, Path.Type.directory, Path.Type.placeholder), attributes); + return new Path(directory, metadata.getDisplayName(), EnumSet.of(Path.Type.volume, Path.Type.directory, Path.Type.placeholder), attributes); } @Override @@ -67,6 +60,9 @@ protected boolean filter(final Path directory, final GroupItem.Metadata metadata if(StringUtils.isBlank(metadata.getId())) { return false; } + if(StringUtils.isBlank(metadata.getDisplayName())) { + return false; + } return super.filter(directory, metadata); } } diff --git a/onedrive/src/main/java/ch/cyberduck/core/onedrive/features/sharepoint/SitesListService.java b/onedrive/src/main/java/ch/cyberduck/core/onedrive/features/sharepoint/SitesListService.java index d8088bfd162..53f591f5b49 100644 --- a/onedrive/src/main/java/ch/cyberduck/core/onedrive/features/sharepoint/SitesListService.java +++ b/onedrive/src/main/java/ch/cyberduck/core/onedrive/features/sharepoint/SitesListService.java @@ -63,6 +63,9 @@ protected boolean filter(final Path directory, final Metadata metadata) { if(StringUtils.isBlank(metadata.getId())) { return false; } + if(StringUtils.isBlank(metadata.getName())) { + return false; + } if(!session.isSingleSite() && directory.getParent().isRoot()) { if(metadata.getRoot() == null) { return false;