From 78b70c3c32f2bd02b6ce777185b7043a3634d911 Mon Sep 17 00:00:00 2001 From: Thierry Boileau Date: Sun, 8 Mar 2026 20:34:21 +0100 Subject: [PATCH] Issue #1495: Avoid non-short-circuit logic in FileClientHelper --- changes.md | 1 + .../engine/local/FileClientHelper.java | 26 ++++++++----------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/changes.md b/changes.md index ce7813b029..8be54edc2d 100644 --- a/changes.md +++ b/changes.md @@ -5,6 +5,7 @@ Changes log - Bugs fixed - Reuse an instance of Random class in RandomUtils. Issue #1487. - Complete test classes. Issue #1490. + - Avoid non-short-circuit logic in FileClientHelper. Issue #1495. - - 2.6.0 (29-06-2025) diff --git a/org.restlet.java/org.restlet/src/main/java/org/restlet/engine/local/FileClientHelper.java b/org.restlet.java/org.restlet/src/main/java/org/restlet/engine/local/FileClientHelper.java index 000e290012..90cf92e9eb 100644 --- a/org.restlet.java/org.restlet/src/main/java/org/restlet/engine/local/FileClientHelper.java +++ b/org.restlet.java/org.restlet/src/main/java/org/restlet/engine/local/FileClientHelper.java @@ -106,7 +106,7 @@ protected boolean checkExtensionsConsistency(File file) { * * @param fileName The name of the resource * @param representation The provided representation. - * @return True if the metadata of the representation are compatible with the + * @return True if the metadata of the representation is compatible with the * metadata extracted from the filename */ private boolean checkMetadataConsistency(String fileName, Representation representation) { @@ -208,7 +208,7 @@ private static boolean isFileInDirectory(final Directory directory, final File f final String fileAbsolute = directory.getRootRef().getPath(true); final String filePath; - if (fileAbsolute.indexOf(':') == 2 | fileAbsolute.indexOf('|') == 2) { + if (fileAbsolute.indexOf(':') == 2 || fileAbsolute.indexOf('|') == 2) { filePath = fileAbsolute.substring(1); } else { filePath = fileAbsolute; @@ -541,7 +541,7 @@ private Status createFile(Request request, File file) { } private void cleanTemporaryFileIfUploadNotResumed(File tmp) { - if (tmp.exists() && !isResumeUpload()) { + if (tmp!= null && tmp.exists() && !isResumeUpload()) { IoUtils.delete(tmp); } } @@ -567,18 +567,14 @@ private void updateFileExtension(StringBuilder fileName, Metadata metadata) { boolean defaultMetadata = true; if (getMetadataService() != null) { - if (metadata instanceof Language) { - Language language = (Language) metadata; - defaultMetadata = language.equals(getMetadataService().getDefaultLanguage()); - } else if (metadata instanceof MediaType) { - MediaType mediaType = (MediaType) metadata; - defaultMetadata = mediaType.equals(getMetadataService().getDefaultMediaType()); - } else if (metadata instanceof CharacterSet) { - CharacterSet characterSet = (CharacterSet) metadata; - defaultMetadata = characterSet.equals(getMetadataService().getDefaultCharacterSet()); - } else if (metadata instanceof Encoding) { - Encoding encoding = (Encoding) metadata; - defaultMetadata = encoding.equals(getMetadataService().getDefaultEncoding()); + if (metadata instanceof final Language language) { + defaultMetadata = language.equals(getMetadataService().getDefaultLanguage()); + } else if (metadata instanceof final MediaType mediaType) { + defaultMetadata = mediaType.equals(getMetadataService().getDefaultMediaType()); + } else if (metadata instanceof final CharacterSet characterSet) { + defaultMetadata = characterSet.equals(getMetadataService().getDefaultCharacterSet()); + } else if (metadata instanceof final Encoding encoding) { + defaultMetadata = encoding.equals(getMetadataService().getDefaultEncoding()); } }