From be82079ba2a8856fb3dce07d2c62acfd26f8c630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Sz=C3=BCcs?= Date: Thu, 7 Aug 2025 12:29:34 +0200 Subject: [PATCH] refactor: replace size checks with isEmpty(), safely collapse redundant "if X == null" or "if X != null" checks --- .../common/model/ApplicationProperties.java | 8 +++---- .../common/util/CustomHtmlSanitizer.java | 2 +- .../software/common/util/PDFToFile.java | 8 +++---- .../software/common/util/PdfUtils.java | 2 +- .../SPDF/config/AppUpdateService.java | 2 +- .../SPDF/config/CleanUrlInterceptor.java | 2 +- .../SPDF/config/ExternalAppDepConfig.java | 2 +- .../api/RearrangePagesPDFController.java | 2 +- .../api/SplitPdfBySizeController.java | 4 ++-- .../converters/ConvertImgPDFController.java | 9 ++++---- .../converters/ConvertOfficeController.java | 2 +- .../api/converters/ConvertPDFToPDFA.java | 4 ++-- .../api/filters/FilterController.java | 8 +++---- .../api/misc/AutoRenameController.java | 2 +- .../api/misc/AutoSplitPdfController.java | 2 +- .../api/misc/CompressController.java | 9 +++----- .../api/misc/ExtractImageScansController.java | 4 ++-- .../api/misc/MetadataController.java | 4 ++-- .../controller/api/misc/OCRController.java | 8 +++---- .../controller/api/misc/StampController.java | 22 +++++++++---------- .../api/pipeline/PipelineController.java | 2 +- .../pipeline/PipelineDirectoryProcessor.java | 4 ++-- .../controller/api/security/GetInfoOnPDF.java | 9 ++++---- .../api/security/SanitizeController.java | 6 ++--- .../api/security/WatermarkController.java | 20 ++++++++--------- .../controller/web/GeneralWebController.java | 4 ++-- .../software/SPDF/service/ApiDocService.java | 8 +++---- .../service/MetricsAggregatorService.java | 2 +- 28 files changed, 74 insertions(+), 87 deletions(-) diff --git a/app/common/src/main/java/stirling/software/common/model/ApplicationProperties.java b/app/common/src/main/java/stirling/software/common/model/ApplicationProperties.java index 802a55831..a56d989ff 100644 --- a/app/common/src/main/java/stirling/software/common/model/ApplicationProperties.java +++ b/app/common/src/main/java/stirling/software/common/model/ApplicationProperties.java @@ -433,19 +433,17 @@ public class ApplicationProperties { private List languages; public String getAppName() { - return appName != null && appName.trim().length() > 0 ? appName : null; + return appName != null && !appName.trim().isEmpty() ? appName : null; } public String getHomeDescription() { - return homeDescription != null && homeDescription.trim().length() > 0 + return homeDescription != null && !homeDescription.trim().isEmpty() ? homeDescription : null; } public String getAppNameNavbar() { - return appNameNavbar != null && appNameNavbar.trim().length() > 0 - ? appNameNavbar - : null; + return appNameNavbar != null && !appNameNavbar.trim().isEmpty() ? appNameNavbar : null; } } diff --git a/app/common/src/main/java/stirling/software/common/util/CustomHtmlSanitizer.java b/app/common/src/main/java/stirling/software/common/util/CustomHtmlSanitizer.java index 05d9b73a6..738edf187 100644 --- a/app/common/src/main/java/stirling/software/common/util/CustomHtmlSanitizer.java +++ b/app/common/src/main/java/stirling/software/common/util/CustomHtmlSanitizer.java @@ -28,7 +28,7 @@ public class CustomHtmlSanitizer { new AttributePolicy() { @Override public String apply(String elementName, String attributeName, String value) { - if (value == null || value.trim().isEmpty()) { + if (value.trim().isEmpty()) { return null; } diff --git a/app/common/src/main/java/stirling/software/common/util/PDFToFile.java b/app/common/src/main/java/stirling/software/common/util/PDFToFile.java index f763f5414..2409a8c55 100644 --- a/app/common/src/main/java/stirling/software/common/util/PDFToFile.java +++ b/app/common/src/main/java/stirling/software/common/util/PDFToFile.java @@ -74,7 +74,7 @@ public class PDFToFile { Path tempInputFile = null; Path tempOutputDir = null; byte[] fileBytes; - String fileName = "temp.file"; + String fileName; try { tempInputFile = Files.createTempFile("input_", ".pdf"); @@ -167,7 +167,7 @@ public class PDFToFile { Path tempInputFile = null; Path tempOutputDir = null; byte[] fileBytes; - String fileName = "temp.file"; + String fileName; try { // Save the uploaded file to a temporary location @@ -230,7 +230,7 @@ public class PDFToFile { // Get the original PDF file name without the extension String originalPdfFileName = Filenames.toSimpleFileName(inputFile.getOriginalFilename()); - if (originalPdfFileName == null || "".equals(originalPdfFileName.trim())) { + if (originalPdfFileName == null || originalPdfFileName.trim().isEmpty()) { originalPdfFileName = "output.pdf"; } // Assume file is pdf if no extension @@ -248,7 +248,7 @@ public class PDFToFile { Path tempInputFile = null; Path tempOutputDir = null; byte[] fileBytes; - String fileName = "temp.file"; + String fileName; try { // Save the uploaded file to a temporary location diff --git a/app/common/src/main/java/stirling/software/common/util/PdfUtils.java b/app/common/src/main/java/stirling/software/common/util/PdfUtils.java index ec269e47d..67bda3bba 100644 --- a/app/common/src/main/java/stirling/software/common/util/PdfUtils.java +++ b/app/common/src/main/java/stirling/software/common/util/PdfUtils.java @@ -122,7 +122,7 @@ public class PdfUtils { } public static boolean hasImagesOnPage(PDPage page) throws IOException { - return getAllImages(page.getResources()).size() > 0; + return !getAllImages(page.getResources()).isEmpty(); } public static boolean hasTextOnPage(PDPage page, String phrase) throws IOException { diff --git a/app/core/src/main/java/stirling/software/SPDF/config/AppUpdateService.java b/app/core/src/main/java/stirling/software/SPDF/config/AppUpdateService.java index c4c528f77..544867443 100644 --- a/app/core/src/main/java/stirling/software/SPDF/config/AppUpdateService.java +++ b/app/core/src/main/java/stirling/software/SPDF/config/AppUpdateService.java @@ -26,7 +26,7 @@ class AppUpdateService { @Scope("request") public boolean shouldShow() { boolean showUpdate = applicationProperties.getSystem().isShowUpdate(); - boolean showAdminResult = (showAdmin != null) ? showAdmin.getShowUpdateOnlyAdmins() : true; + boolean showAdminResult = showAdmin == null || showAdmin.getShowUpdateOnlyAdmins(); return showUpdate && showAdminResult; } } diff --git a/app/core/src/main/java/stirling/software/SPDF/config/CleanUrlInterceptor.java b/app/core/src/main/java/stirling/software/SPDF/config/CleanUrlInterceptor.java index d37d4bfb6..45a4ee9c7 100644 --- a/app/core/src/main/java/stirling/software/SPDF/config/CleanUrlInterceptor.java +++ b/app/core/src/main/java/stirling/software/SPDF/config/CleanUrlInterceptor.java @@ -64,7 +64,7 @@ public class CleanUrlInterceptor implements HandlerInterceptor { // Construct new query string StringBuilder newQueryString = new StringBuilder(); for (Map.Entry entry : allowedParameters.entrySet()) { - if (newQueryString.length() > 0) { + if (!newQueryString.isEmpty()) { newQueryString.append("&"); } newQueryString.append(entry.getKey()).append("=").append(entry.getValue()); diff --git a/app/core/src/main/java/stirling/software/SPDF/config/ExternalAppDepConfig.java b/app/core/src/main/java/stirling/software/SPDF/config/ExternalAppDepConfig.java index 6d857c679..1ce82ef46 100644 --- a/app/core/src/main/java/stirling/software/SPDF/config/ExternalAppDepConfig.java +++ b/app/core/src/main/java/stirling/software/SPDF/config/ExternalAppDepConfig.java @@ -100,7 +100,7 @@ public class ExternalAppDepConfig { "Missing dependency: {} - Disabling group: {} (Affected features: {})", command, group, - affectedFeatures != null && !affectedFeatures.isEmpty() + !affectedFeatures.isEmpty() ? String.join(", ", affectedFeatures) : "unknown"); } diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/RearrangePagesPDFController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/RearrangePagesPDFController.java index 717c85016..d58fa825d 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/RearrangePagesPDFController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/RearrangePagesPDFController.java @@ -259,7 +259,7 @@ public class RearrangePagesPDFController { int totalPages = document.getNumberOfPages(); List newPageOrder; if (sortType != null - && sortType.length() > 0 + && !sortType.isEmpty() && !"custom".equals(sortType.toLowerCase())) { newPageOrder = processSortTypes(sortType, totalPages, pageOrder); } else { diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/SplitPdfBySizeController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/SplitPdfBySizeController.java index 0dbbd933c..8c92fbf52 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/SplitPdfBySizeController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/SplitPdfBySizeController.java @@ -273,7 +273,7 @@ public class SplitPdfBySizeController { log.debug("Starting handleSplitByPageCount with pageCount={}", pageCount); int currentPageCount = 0; log.debug("Creating initial output document"); - PDDocument currentDoc = null; + PDDocument currentDoc; try { currentDoc = pdfDocumentFactory.createNewDocumentBasedOnOldDocument(sourceDocument); log.debug("Successfully created initial output document"); @@ -387,7 +387,7 @@ public class SplitPdfBySizeController { for (int i = 0; i < documentCount; i++) { log.debug("Creating document {} of {}", i + 1, documentCount); - PDDocument currentDoc = null; + PDDocument currentDoc; try { currentDoc = pdfDocumentFactory.createNewDocumentBasedOnOldDocument(sourceDocument); log.debug("Successfully created document {} of {}", i + 1, documentCount); diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java index 5eff72a4a..7c7434654 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java @@ -69,12 +69,11 @@ public class ConvertImgPDFController { Path tempFile = null; Path tempOutputDir = null; Path tempPdfPath = null; - byte[] result = null; + byte[] result; String[] pageOrderArr = (pageNumbers != null && !pageNumbers.trim().isEmpty()) ? pageNumbers.split(",") : new String[] {"all"}; - ; try { // Load the input PDF byte[] newPdfBytes = rearrangePdfPages(file, pageOrderArr); @@ -102,7 +101,7 @@ public class ConvertImgPDFController { singleImage, dpi, filename); - if (result == null || result.length == 0) { + if (result.length == 0) { log.error("resultant bytes for {} is null, error converting ", filename); } if ("webp".equalsIgnoreCase(imageFormat) && !CheckProgramInstall.isPythonAvailable()) { @@ -159,7 +158,7 @@ public class ConvertImgPDFController { "No WebP files were created. " + resultProcess.getMessages()); } - byte[] bodyBytes = new byte[0]; + byte[] bodyBytes; if (webpFiles.size() == 1) { // Return the single WebP file directly @@ -179,7 +178,7 @@ public class ConvertImgPDFController { } // Clean up the temporary files Files.deleteIfExists(tempFile); - if (tempOutputDir != null) FileUtils.deleteDirectory(tempOutputDir.toFile()); + FileUtils.deleteDirectory(tempOutputDir.toFile()); result = bodyBytes; } diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertOfficeController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertOfficeController.java index 651444c69..4d52d64ef 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertOfficeController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertOfficeController.java @@ -88,7 +88,7 @@ public class ConvertOfficeController { return tempOutputFile.toFile(); } finally { // Clean up the temporary files - if (tempInputFile != null) Files.deleteIfExists(tempInputFile); + Files.deleteIfExists(tempInputFile); } } diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToPDFA.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToPDFA.java index 7c5435aaa..8868e8570 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToPDFA.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertPDFToPDFA.java @@ -123,7 +123,7 @@ public class ConvertPDFToPDFA { preProcessedFile = preProcessHighlights(tempInputFile.toFile()); } Set missingFonts = new HashSet<>(); - boolean needImgs = false; + boolean needImgs; try (PDDocument doc = Loader.loadPDF(preProcessedFile)) { missingFonts = findUnembeddedFontNames(doc); needImgs = (pdfaPart == 1) && hasTransparentImages(doc); @@ -285,7 +285,7 @@ public class ConvertPDFToPDFA { if (fontStream == null) continue; try (InputStream in = fontStream.createInputStream()) { - PDFont newFont = null; + PDFont newFont; try { newFont = PDType0Font.load(baseDoc, in, false); } catch (IOException e1) { diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/filters/FilterController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/filters/FilterController.java index ce9dab8c5..f39b2de26 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/filters/FilterController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/filters/FilterController.java @@ -84,7 +84,7 @@ public class FilterController { PDDocument document = pdfDocumentFactory.load(inputFile); int actualPageCount = document.getNumberOfPages(); - boolean valid = false; + boolean valid; // Perform the comparison switch (comparator) { case "Greater": @@ -127,7 +127,7 @@ public class FilterController { PDRectangle standardSize = PdfUtils.textToPageSize(standardPageSize); float standardArea = standardSize.getWidth() * standardSize.getHeight(); - boolean valid = false; + boolean valid; // Perform the comparison switch (comparator) { case "Greater": @@ -160,7 +160,7 @@ public class FilterController { // Get the file size long actualFileSize = inputFile.getSize(); - boolean valid = false; + boolean valid; // Perform the comparison switch (comparator) { case "Greater": @@ -196,7 +196,7 @@ public class FilterController { // Get the rotation of the first page PDPage firstPage = document.getPage(0); int actualRotation = firstPage.getRotation(); - boolean valid = false; + boolean valid; // Perform the comparison switch (comparator) { case "Greater": diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/AutoRenameController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/AutoRenameController.java index 8d803708c..6a14916ae 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/AutoRenameController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/AutoRenameController.java @@ -75,7 +75,7 @@ public class AutoRenameController { } private void processLine() { - if (lineBuilder.length() > 0 && lineCount < LINE_LIMIT) { + if (!lineBuilder.isEmpty() && lineCount < LINE_LIMIT) { lineInfos.add(new LineInfo(lineBuilder.toString(), maxFontSizeInLine)); } } diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/AutoSplitPdfController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/AutoSplitPdfController.java index 44d575575..1c81d4ef5 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/AutoSplitPdfController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/AutoSplitPdfController.java @@ -118,7 +118,7 @@ public class AutoSplitPdfController { PDDocument document = null; List splitDocuments = new ArrayList<>(); Path zipFile = null; - byte[] data = null; + byte[] data; try { document = pdfDocumentFactory.load(file.getInputStream()); diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/CompressController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/CompressController.java index ab8e5b3f8..f379c156c 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/CompressController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/CompressController.java @@ -782,11 +782,8 @@ public class CompressController { // Check if we can't increase the level further if (newOptimizeLevel == optimizeLevel) { - if (autoMode) { - log.info( - "Maximum optimization level reached without meeting target size."); - sizeMet = true; - } + log.info("Maximum optimization level reached without meeting target size."); + sizeMet = true; } else { // Reset flags for next iteration with higher optimization level imageCompressionApplied = false; @@ -888,7 +885,7 @@ public class CompressController { command.add("-sOutputFile=" + gsOutputFile.toString()); command.add(currentFile.toString()); - ProcessExecutorResult returnCode = null; + ProcessExecutorResult returnCode; try { returnCode = ProcessExecutor.getInstance(ProcessExecutor.Processes.GHOSTSCRIPT) diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java index 3992595ab..ae0ecdebd 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/ExtractImageScansController.java @@ -69,7 +69,7 @@ public class ExtractImageScansController { List images = new ArrayList<>(); List tempImageFiles = new ArrayList<>(); - Path tempInputFile = null; + Path tempInputFile; Path tempZipFile = null; List tempDirs = new ArrayList<>(); @@ -181,7 +181,7 @@ public class ExtractImageScansController { return WebResponseUtils.bytesToWebResponse( zipBytes, outputZipFilename, MediaType.APPLICATION_OCTET_STREAM); } - if (processedImageBytes.size() == 0) { + if (processedImageBytes.isEmpty()) { throw new IllegalArgumentException("No images detected"); } else { diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/MetadataController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/MetadataController.java index 1d5196940..ebfde7fbf 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/MetadataController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/MetadataController.java @@ -143,7 +143,7 @@ public class MetadataController { } } } - if (creationDate != null && creationDate.length() > 0) { + if (creationDate != null && !creationDate.isEmpty()) { Calendar creationDateCal = Calendar.getInstance(); try { creationDateCal.setTime( @@ -155,7 +155,7 @@ public class MetadataController { } else { info.setCreationDate(null); } - if (modificationDate != null && modificationDate.length() > 0) { + if (modificationDate != null && !modificationDate.isEmpty()) { Calendar modificationDateCal = Calendar.getInstance(); try { modificationDateCal.setTime( diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/OCRController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/OCRController.java index c1fd4ade1..ceeb08232 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/OCRController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/OCRController.java @@ -126,7 +126,7 @@ public class OCRController { try { // Use OCRmyPDF if available (no fallback - error if it fails) if (isOcrMyPdfEnabled()) { - if (sidecar != null && sidecar) { + if (sidecar) { sidecarTextFile = new TempFile(tempFileManager, ".txt"); } @@ -165,7 +165,7 @@ public class OCRController { .replaceFirst("[.][^.]+$", "") + "_OCR.pdf"; - if (sidecar != null && sidecar && sidecarTextFile != null) { + if (sidecar && sidecarTextFile != null) { // Create a zip file containing both the PDF and the text file String outputZipFilename = Filenames.toSimpleFileName(inputFile.getOriginalFilename()) @@ -257,7 +257,7 @@ public class OCRController { if (cleanFinal != null && cleanFinal) { command.add("--clean-final"); } - if (ocrType != null && !"".equals(ocrType)) { + if (ocrType != null && !ocrType.isEmpty()) { if ("skip-text".equals(ocrType)) { command.add("--skip-text"); } else if ("force-ocr".equals(ocrType)) { @@ -338,7 +338,7 @@ public class OCRController { for (int pageNum = 0; pageNum < pageCount; pageNum++) { PDPage page = document.getPage(pageNum); - boolean hasText = false; + boolean hasText; // Check for existing text try (PDDocument tempDoc = new PDDocument()) { diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java index 2a4a3f665..662b7321c 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java @@ -183,7 +183,7 @@ public class StampController { float margin, String colorString) // Y override throws IOException { - String resourceDir = ""; + String resourceDir; PDFont font = new PDType1Font(Standard14Fonts.FontName.HELVETICA); switch (alphabet) { case "arabic": @@ -207,18 +207,16 @@ public class StampController { break; } - if (!"".equals(resourceDir)) { - ClassPathResource classPathResource = new ClassPathResource(resourceDir); - String fileExtension = resourceDir.substring(resourceDir.lastIndexOf(".")); + ClassPathResource classPathResource = new ClassPathResource(resourceDir); + String fileExtension = resourceDir.substring(resourceDir.lastIndexOf(".")); - // Use TempFile with try-with-resources for automatic cleanup - try (TempFile tempFileWrapper = new TempFile(tempFileManager, fileExtension)) { - File tempFile = tempFileWrapper.getFile(); - try (InputStream is = classPathResource.getInputStream(); - FileOutputStream os = new FileOutputStream(tempFile)) { - IOUtils.copy(is, os); - font = PDType0Font.load(document, tempFile); - } + // Use TempFile with try-with-resources for automatic cleanup + try (TempFile tempFileWrapper = new TempFile(tempFileManager, fileExtension)) { + File tempFile = tempFileWrapper.getFile(); + try (InputStream is = classPathResource.getInputStream(); + FileOutputStream os = new FileOutputStream(tempFile)) { + IOUtils.copy(is, os); + font = PDType0Font.load(document, tempFile); } } diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineController.java index d6b4fa0da..cb8765ecd 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineController.java @@ -68,7 +68,7 @@ public class PipelineController { try { List inputFiles = processor.generateInputFiles(files); - if (inputFiles == null || inputFiles.size() == 0) { + if (inputFiles == null || inputFiles.isEmpty()) { return null; } PipelineResult result = processor.runPipelineAgainstFiles(inputFiles, config); diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineDirectoryProcessor.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineDirectoryProcessor.java index a3548ed49..63c08f619 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineDirectoryProcessor.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/pipeline/PipelineDirectoryProcessor.java @@ -115,7 +115,7 @@ public class PipelineDirectoryProcessor { log.info("Handling directory: {}", dir); Path processingDir = createProcessingDirectory(dir); Optional jsonFileOptional = findJsonFile(dir); - if (!jsonFileOptional.isPresent()) { + if (jsonFileOptional.isEmpty()) { log.warn("No .JSON settings file found. No processing will happen for dir {}.", dir); return; } @@ -150,7 +150,7 @@ public class PipelineDirectoryProcessor { for (PipelineOperation operation : config.getOperations()) { validateOperation(operation); File[] files = collectFilesForProcessing(dir, jsonFile, operation); - if (files == null || files.length == 0) { + if (files.length == 0) { log.debug("No files detected for {} ", dir); return; } diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/security/GetInfoOnPDF.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/security/GetInfoOnPDF.java index f3c0a5e29..2f5bfe44f 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/security/GetInfoOnPDF.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/security/GetInfoOnPDF.java @@ -119,7 +119,7 @@ public class GetInfoOnPDF { if (!ap.canModifyAnnotations()) restrictedPermissions.add("annotation modification"); if (!ap.canPrint()) restrictedPermissions.add("printing"); - if (restrictedPermissions.size() > 0) { + if (!restrictedPermissions.isEmpty()) { summaryData.set("restrictedPermissions", restrictedPermissions); summaryData.put("restrictedPermissionsCount", restrictedPermissions.size()); } @@ -193,7 +193,7 @@ public class GetInfoOnPDF { public ResponseEntity getPdfInfo(@ModelAttribute PDFFile request) throws IOException { MultipartFile inputFile = request.getFileInput(); boolean readonly = true; - try (PDDocument pdfBoxDoc = pdfDocumentFactory.load(inputFile, readonly); ) { + try (PDDocument pdfBoxDoc = pdfDocumentFactory.load(inputFile, readonly)) { ObjectMapper objectMapper = new ObjectMapper(); ObjectNode jsonOutput = objectMapper.createObjectNode(); @@ -249,7 +249,6 @@ public class GetInfoOnPDF { docInfoNode.put("PDF version", pdfBoxDoc.getVersion()); docInfoNode.put("Trapped", info.getTrapped()); docInfoNode.put("Page Mode", getPageModeDescription(pageMode)); - ; PDAcroForm acroForm = pdfBoxDoc.getDocumentCatalog().getAcroForm(); @@ -263,7 +262,7 @@ public class GetInfoOnPDF { // Generate structured summary data about PDF characteristics ObjectNode summaryData = generatePDFSummaryData(pdfBoxDoc); - if (summaryData != null && summaryData.size() > 0) { + if (summaryData != null && !summaryData.isEmpty()) { jsonOutput.set("SummaryData", summaryData); } @@ -788,7 +787,7 @@ public class GetInfoOnPDF { // Recursively explore child elements ArrayNode childElements = exploreStructureTree(structureElement.getKids()); - if (childElements.size() > 0) { + if (!childElements.isEmpty()) { elementNode.set("Children", childElements); } } diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/security/SanitizeController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/security/SanitizeController.java index 47e45c595..d9f238c82 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/security/SanitizeController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/security/SanitizeController.java @@ -176,11 +176,9 @@ public class SanitizeController { private void sanitizeLinks(PDDocument document) throws IOException { for (PDPage page : document.getPages()) { for (PDAnnotation annotation : page.getAnnotations()) { - if (annotation != null && annotation instanceof PDAnnotationLink linkAnnotation) { + if (annotation instanceof PDAnnotationLink linkAnnotation) { PDAction action = linkAnnotation.getAction(); - if (action != null - && (action instanceof PDActionLaunch - || action instanceof PDActionURI)) { + if ((action instanceof PDActionLaunch || action instanceof PDActionURI)) { linkAnnotation.setAction(null); } } diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java index 484a1c116..ac8e77e7e 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java @@ -191,17 +191,15 @@ public class WatermarkController { break; } - if (!"".equals(resourceDir)) { - ClassPathResource classPathResource = new ClassPathResource(resourceDir); - String fileExtension = resourceDir.substring(resourceDir.lastIndexOf(".")); - File tempFile = Files.createTempFile("NotoSansFont", fileExtension).toFile(); - try (InputStream is = classPathResource.getInputStream(); - FileOutputStream os = new FileOutputStream(tempFile)) { - IOUtils.copy(is, os); - font = PDType0Font.load(document, tempFile); - } finally { - if (tempFile != null) Files.deleteIfExists(tempFile.toPath()); - } + ClassPathResource classPathResource = new ClassPathResource(resourceDir); + String fileExtension = resourceDir.substring(resourceDir.lastIndexOf(".")); + File tempFile = Files.createTempFile("NotoSansFont", fileExtension).toFile(); + try (InputStream is = classPathResource.getInputStream(); + FileOutputStream os = new FileOutputStream(tempFile)) { + IOUtils.copy(is, os); + font = PDType0Font.load(document, tempFile); + } finally { + Files.deleteIfExists(tempFile.toPath()); } contentStream.setFont(font, fontSize); diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/web/GeneralWebController.java b/app/core/src/main/java/stirling/software/SPDF/controller/web/GeneralWebController.java index 1084e2fe0..42f29ea69 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/web/GeneralWebController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/web/GeneralWebController.java @@ -75,7 +75,7 @@ public class GeneralWebController { new ObjectMapper() .readValue(config, new TypeReference>() {}); String name = (String) jsonContent.get("name"); - if (name == null || name.length() < 1) { + if (name == null || name.isEmpty()) { String filename = jsonFiles .get(pipelineConfigs.indexOf(config)) @@ -92,7 +92,7 @@ public class GeneralWebController { log.error("exception", e); } } - if (pipelineConfigsWithNames.size() == 0) { + if (pipelineConfigsWithNames.isEmpty()) { Map configWithName = new HashMap<>(); configWithName.put("json", ""); configWithName.put("name", "No preloaded configs found"); diff --git a/app/core/src/main/java/stirling/software/SPDF/service/ApiDocService.java b/app/core/src/main/java/stirling/software/SPDF/service/ApiDocService.java index 0e46af08d..906b597d4 100644 --- a/app/core/src/main/java/stirling/software/SPDF/service/ApiDocService.java +++ b/app/core/src/main/java/stirling/software/SPDF/service/ApiDocService.java @@ -52,7 +52,7 @@ public class ApiDocService { } public List getExtensionTypes(boolean output, String operationName) { - if (outputToFileTypes.size() == 0) { + if (outputToFileTypes.isEmpty()) { outputToFileTypes.put("PDF", Arrays.asList("pdf")); outputToFileTypes.put( "IMAGE", @@ -74,7 +74,7 @@ public class ApiDocService { "BOOK", Arrays.asList("epub", "mobi", "azw3", "fb2", "txt", "docx")); // type. } - if (apiDocsJsonRootNode == null || apiDocumentation.size() == 0) { + if (apiDocsJsonRootNode == null || apiDocumentation.isEmpty()) { loadApiDocumentation(); } if (!apiDocumentation.containsKey(operationName)) { @@ -138,7 +138,7 @@ public class ApiDocService { } public boolean isValidOperation(String operationName, Map parameters) { - if (apiDocumentation.size() == 0) { + if (apiDocumentation.isEmpty()) { loadApiDocumentation(); } if (!apiDocumentation.containsKey(operationName)) { @@ -149,7 +149,7 @@ public class ApiDocService { } public boolean isMultiInput(String operationName) { - if (apiDocsJsonRootNode == null || apiDocumentation.size() == 0) { + if (apiDocsJsonRootNode == null || apiDocumentation.isEmpty()) { loadApiDocumentation(); } if (!apiDocumentation.containsKey(operationName)) { diff --git a/app/core/src/main/java/stirling/software/SPDF/service/MetricsAggregatorService.java b/app/core/src/main/java/stirling/software/SPDF/service/MetricsAggregatorService.java index 181757a04..950ca7e55 100644 --- a/app/core/src/main/java/stirling/software/SPDF/service/MetricsAggregatorService.java +++ b/app/core/src/main/java/stirling/software/SPDF/service/MetricsAggregatorService.java @@ -31,7 +31,7 @@ public class MetricsAggregatorService { public void aggregateAndSendMetrics() { Map metrics = new HashMap<>(); - final boolean validateGetEndpoints = endpointInspector.getValidGetEndpoints().size() != 0; + final boolean validateGetEndpoints = !endpointInspector.getValidGetEndpoints().isEmpty(); Search.in(meterRegistry) .name("http.requests") .counters()