I don't know if I understood you correctly.
Instead of looping via cache.keySet() you mean looping via:
Map.Entry<String, Object> entry : cache.entrySet() or cache.foreach((k, v)
-> {...})?

If yes what is the difference? Isn't it the same unordered collection?
If Caffeince returns unordered collection how we can get ordered entries?
Isn't it related with:
https://github.com/ben-manes/caffeine/issues/86

Shouldn't we use a kind of LinkedHashMap implementation?

Regards
Kris

wt., 28 lis 2017 o 18:40 użytkownik Claus Ibsen-2 [via Camel] <
ml+s465427n5815878...@n5.nabble.com> napisał:

> Hi
>
> Ah well spotted.
> I think we should for loop via Map.Entry (or (k,v) via lambda) which I
> think will be in the correct order.
>
> You are welcome to log a JIRA. And also work on unit test and patch.
> http://camel.apache.org/contributing
>
> On Tue, Nov 28, 2017 at 8:55 AM, Krzysztof Hołdanowicz
> <[hidden email] <http:///user/SendEmail.jtp?type=node&node=5815878&i=0>>
> wrote:
>
> > Hi all,
> >
> > 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);
> >         }
> >     }
> >
> > LRUCache:
> >
> >     @Override
> >     public Set<K> keySet() {
> >         return map.keySet();
> >     }
> >
> > where previously it was:
> >
> >     @Override
> >     public Set<K> keySet() {
> >         return map.*ascendingKeySet*();
> >     }
> >
> > Regards
> > Kris
> > --
> >
> > Pozdrawiam
> >
> > Krzysztof Hołdanowicz
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
>
> http://camel.465427.n5.nabble.com/File-idempotent-store-problem-since-2-20-tp5815868p5815878.html
> To unsubscribe from Camel - Users, click here
> <http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=465428&code=aG9sZGFub3dpY3pAZ21haWwuY29tfDQ2NTQyOHwtMTk2MTQxMTc0NQ==>
> .
> NAML
> <http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>
-- 

Pozdrawiam

Krzysztof Hołdanowicz

Reply via email to