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)

Reply via email to