Github user Ethanlm commented on a diff in the pull request: https://github.com/apache/storm/pull/2754#discussion_r208651482 --- Diff: storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java --- @@ -265,32 +269,26 @@ public Response daemonLogPage(String fileName, Integer start, Integer length, St String rootDir = daemonLogRoot; File file = new File(rootDir, fileName).getCanonicalFile(); String path = file.getCanonicalPath(); - boolean isZipFile = path.endsWith(".gz"); if (file.exists() && new File(rootDir).getCanonicalFile().equals(file.getParentFile())) { // all types of files included List<File> logFiles = Arrays.stream(new File(rootDir).listFiles()) .filter(File::isFile) .collect(toList()); - List<String> filesStrWithoutFileParam = logFiles.stream() - .map(File::getName).filter(fName -> !StringUtils.equals(fileName, fName)).collect(toList()); - - List<String> reorderedFilesStr = new ArrayList<>(); - reorderedFilesStr.addAll(filesStrWithoutFileParam); + List<String> reorderedFilesStr = logFiles.stream() + .map(File::getName).filter(fName -> !StringUtils.equals(fileName, fName)).collect(toList()); reorderedFilesStr.add(fileName); length = length != null ? Math.min(10485760, length) : LogviewerConstant.DEFAULT_BYTES_PER_PAGE; - - String logString; - if (isTxtFile(fileName)) { - logString = escapeHtml(start != null ? pageFile(path, start, length) : pageFile(path, length)); - } else { - logString = escapeHtml("This is a binary file and cannot display! You may download the full file."); + final boolean isZipFile = path.endsWith(".gz"); + long fileLength = isZipFile ? ServerUtils.zipFileSize(file) : file.length(); --- End diff -- why not reuse `getFileLength`
---