From c8e25f4c5ad4be4c97c6bf797cd4e766e4fe0a43 Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Tue, 20 May 2025 12:02:26 +0100 Subject: [PATCH] Fix TemplateResolver and LibreOfficeListener bugs (#3555) ## Summary - log missing exceptions in FileFallbackTemplateResolver - implement exists check for InputStreamTemplateResource - use LISTENER_PORT constant when verifying LibreOffice listener ## Testing - `./gradlew build --no-daemon` - `./gradlew test --no-daemon` --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../java/stirling/software/SPDF/LibreOfficeListener.java | 3 ++- .../software/SPDF/config/FileFallbackTemplateResolver.java | 6 +++++- .../software/SPDF/model/InputStreamTemplateResource.java | 3 +-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/stirling/software/SPDF/LibreOfficeListener.java b/src/main/java/stirling/software/SPDF/LibreOfficeListener.java index 5b00700e8..2be2a082c 100644 --- a/src/main/java/stirling/software/SPDF/LibreOfficeListener.java +++ b/src/main/java/stirling/software/SPDF/LibreOfficeListener.java @@ -31,7 +31,8 @@ public class LibreOfficeListener { log.info("waiting for listener to start"); try (Socket socket = new Socket()) { socket.connect( - new InetSocketAddress("localhost", 2002), 1000); // Timeout after 1 second + new InetSocketAddress("localhost", LISTENER_PORT), + 1000); // Timeout after 1 second return true; } catch (Exception e) { return false; diff --git a/src/main/java/stirling/software/SPDF/config/FileFallbackTemplateResolver.java b/src/main/java/stirling/software/SPDF/config/FileFallbackTemplateResolver.java index b6315db92..8073f2358 100644 --- a/src/main/java/stirling/software/SPDF/config/FileFallbackTemplateResolver.java +++ b/src/main/java/stirling/software/SPDF/config/FileFallbackTemplateResolver.java @@ -11,8 +11,11 @@ import org.thymeleaf.templateresolver.AbstractConfigurableTemplateResolver; import org.thymeleaf.templateresource.FileTemplateResource; import org.thymeleaf.templateresource.ITemplateResource; +import lombok.extern.slf4j.Slf4j; + import stirling.software.SPDF.model.InputStreamTemplateResource; +@Slf4j public class FileFallbackTemplateResolver extends AbstractConfigurableTemplateResolver { private final ResourceLoader resourceLoader; @@ -40,7 +43,8 @@ public class FileFallbackTemplateResolver extends AbstractConfigurableTemplateRe return new FileTemplateResource(resource.getFile().getPath(), characterEncoding); } } catch (IOException e) { - + // Log the exception to help with debugging issues loading external templates + log.warn("Unable to read template '{}' from file system", resourceName, e); } InputStream inputStream = diff --git a/src/main/java/stirling/software/SPDF/model/InputStreamTemplateResource.java b/src/main/java/stirling/software/SPDF/model/InputStreamTemplateResource.java index b4271df02..3e0bd65e8 100644 --- a/src/main/java/stirling/software/SPDF/model/InputStreamTemplateResource.java +++ b/src/main/java/stirling/software/SPDF/model/InputStreamTemplateResource.java @@ -39,7 +39,6 @@ public class InputStreamTemplateResource implements ITemplateResource { @Override public boolean exists() { - // TODO Auto-generated method stub - return false; + return inputStream != null; } }