dbf-exporter. jdbc -> hazelcast, ready for test (fix delete empty file)
This commit is contained in:
parent
4e08b8acd0
commit
cc8a36018d
1 changed files with 11 additions and 0 deletions
|
|
@ -70,6 +70,8 @@ public class ExportFromHazelcast extends Stage implements InitializingBean {
|
|||
|
||||
Imdg<? extends SpcexObjectBase> 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<? extends SpcexObjectBase> 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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue