diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/ExportFromHazelcast.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/ExportFromHazelcast.java index 72b67032a..5a4c8dd81 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/ExportFromHazelcast.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/logic/stages/ExportFromHazelcast.java @@ -70,6 +70,8 @@ public class ExportFromHazelcast extends Stage implements InitializingBean { Imdg map = imdgProvider.getImdg(table.getHazelcastMapName(), table.getEntityClass()); File dbfFile = resultContainer.getFileForExport(); + boolean writeOk = false; + boolean emptyMap = true; try (DBFWriter dbfWriter = new DBFWriter(dbfFile, dbfCharset)) { dbfWriter.setFields(dbfFieldsForTable.get(table)); Collection allValues = map.getAllValues(); @@ -88,9 +90,18 @@ public class ExportFromHazelcast extends Stage implements InitializingBean { else throw new Exception("Get unknown object from imdg. Class: " + value.getClass().getSimpleName()); dbfWriter.addRecord(values); } + writeOk = true; + emptyMap = allValues.isEmpty(); } catch (Exception e) { log.error(String.format("uuid %s. Can't export table %s to file %s. Table was skipped.", resultContainer.getUuid(), table, dbfFile), e); return StageResult.ERROR; + } finally { + if (!writeOk || emptyMap) { + boolean deleteOk = resultContainer.getFileForExport().delete(); + if (!deleteOk) { + log.warn("Can't delete file {}", resultContainer.getFileForExport().getName()); + } + } } return StageResult.COMPLETE;