diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/FileSystemRepository.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/FileSystemRepository.java index 67df53952c..b899a36065 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/FileSystemRepository.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/repository/FileSystemRepository.java @@ -199,13 +199,16 @@ public class FileSystemRepository implements ContentRepository { for (final Map.Entry container : containers.entrySet()) { final String containerName = container.getKey(); - final long capacity = Files.getFileStore(container.getValue()).getTotalSpace(); + final long capacity = container.getValue().toFile().getTotalSpace(); + if(capacity==0) { + throw new RuntimeException("System returned total space of the partition for " + containerName + " is zero byte. Nifi can not create a zero sized FileSystemRepository"); + } final long maxArchiveBytes = (long) (capacity * (1D - (maxArchiveRatio - 0.02))); minUsableContainerBytesForArchive.put(container.getKey(), Long.valueOf(maxArchiveBytes)); LOG.info("Maximum Threshold for Container {} set to {} bytes; if volume exceeds this size, archived data will be deleted until it no longer exceeds this size", containerName, maxArchiveBytes); - final long backPressureBytes = (long) (Files.getFileStore(container.getValue()).getTotalSpace() * archiveBackPressureRatio); + final long backPressureBytes = (long) (container.getValue().toFile().getTotalSpace() * archiveBackPressureRatio); final ContainerState containerState = new ContainerState(containerName, true, backPressureBytes, capacity); containerStateMap.put(containerName, containerState); } @@ -382,8 +385,12 @@ public class FileSystemRepository implements ContentRepository { if (path == null) { throw new IllegalArgumentException("No container exists with name " + containerName); } + long capacity = path.toFile().getTotalSpace(); + if(capacity==0) { + throw new RuntimeException("System returned total space of the partition for " + containerName + " is zero byte. Nifi can not create a zero sized FileSystemRepository"); + } - return Files.getFileStore(path).getTotalSpace(); + return capacity; } @Override @@ -392,8 +399,11 @@ public class FileSystemRepository implements ContentRepository { if (path == null) { throw new IllegalArgumentException("No container exists with name " + containerName); } - - return Files.getFileStore(path).getUsableSpace(); + long usableSpace=path.toFile().getUsableSpace(); + if(usableSpace==0) { + throw new RuntimeException("System returned usable space of the partition for " + containerName + " is zero byte. Nifi can not create a zero sized FileSystemRepository"); + } + return usableSpace; } @Override