Krzysztof Hołdanowicz created CAMEL-12058:
---------------------------------------------
Summary: Wrong order in file idempotent store.
Key: CAMEL-12058
URL: https://issues.apache.org/jira/browse/CAMEL-12058
Project: Camel
Issue Type: Bug
Components: camel-core
Affects Versions: 2.20.1, 2.20.2, 2.21.0
Reporter: Krzysztof Hołdanowicz
Fix For: 2.20.2
I recently noticed that there is wrong entry order in file using
FileIdempotentRepository implementation.
The effect is that instead of having order like:
file1.txt.20171123
file2.txt.20171123
file1.txt.20171124
file3.txt.20171125
file2.txt.20171126
we have:
file1.txt.20171123
file1.txt.20171124
file2.txt.20171123
file2.txt.20171126
file3.txt.20171125
where date extension represents order in which particular file was consumed
by the idempotent file consumer.
As a consequence instead of initializing memory cache with newest values,
it is initialized (probably) based on hash function from truncStore method
and we consume same file more than once:
protected void trunkStore() {
LOG.info("Trunking idempotent filestore: {}", fileStore);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(fileStore);
for (String key : cache.keySet()) {
fos.write(key.getBytes());
fos.write(STORE_DELIMITER.getBytes());
}
} catch (IOException e) {
throw ObjectHelper.wrapRuntimeCamelException(e);
} finally {
IOHelper.close(fos, "Trunking file idempotent repository", LOG);
}
}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)