From 8ee023bc81ebd45f26e7768321de48b69908abb4 Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Mon, 3 Oct 2022 22:38:32 +0200 Subject: [PATCH] Check the return value of File.delete() Check the return value of File.delete() and throw an exception if deleting a file fails. --- .../batch/item/support/AbstractFileItemWriter.java | 4 +++- .../springframework/batch/item/xml/StaxEventItemWriter.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/AbstractFileItemWriter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/AbstractFileItemWriter.java index cf04d21eb6..125fc8f839 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/AbstractFileItemWriter.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/AbstractFileItemWriter.java @@ -270,7 +270,9 @@ public void close() { state.close(); if (state.linesWritten == 0 && shouldDeleteIfEmpty) { try { - resource.getFile().delete(); + if (!resource.getFile().delete()) { + throw new ItemStreamException("Failed to delete empty file on close"); + } } catch (IOException e) { throw new ItemStreamException("Failed to delete empty file on close", e); diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/StaxEventItemWriter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/StaxEventItemWriter.java index 8af5576930..694b1bf77f 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/StaxEventItemWriter.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/StaxEventItemWriter.java @@ -735,7 +735,9 @@ public void close() { } if (currentRecordCount == 0 && shouldDeleteIfEmpty) { try { - resource.getFile().delete(); + if (!resource.getFile().delete()) { + throw new ItemStreamException("Failed to delete empty file on close"); + } } catch (IOException e) { throw new ItemStreamException("Failed to delete empty file on close", e);