[infinispan-issues] [JBoss JIRA] (ISPN-5848) WriteOnlyMap.evalAll and eval remove do not produce listener events

Galder Zamarreño (JIRA) issues at jboss.org
Mon Oct 12 04:02:00 EDT 2015


    [ https://issues.jboss.org/browse/ISPN-5848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13117260#comment-13117260 ] 

Galder Zamarreño edited comment on ISPN-5848 at 10/12/15 4:01 AM:
------------------------------------------------------------------

The issue might be slightly different. The following does not work:

{code}
FunctionalMap.WriteOnlyMap<String, String> writeOnlyMap = ...

// `written` is a ReadEntryView of the written entry
try(AutoCloseable handler = writeOnlyMap.listeners().onWrite(written ->
      System.out.printf("Written (via onWrite): %s%n", written.find()))) {
   Map<String, String> entries = new HashMap<>();
   entries.put("key1", "value1");
   entries.put("key2", "value2");

   writeOnlyMap.evalMany(entries, (v, writeView) -> writeView.set(v))
      .thenAccept(ignore -> writeOnlyMap.eval("key1", view -> view.remove()))
      .get(); // Wait for completable future
   }
{code}

^ It prints:

{code}
Written (via onWrite): Optional[value1]
Written (via onWrite): Optional[value2]
{code}

Whereas this works:

{code}
FunctionalMap.WriteOnlyMap<String, String> writeOnlyMap = ...

// `written` is a ReadEntryView of the written entry
try(AutoCloseable handler = writeOnlyMap.listeners().onWrite(written ->
      System.out.printf("Written (via onWrite): %s%n", written.find()))) {
   Map<String, String> entries = new HashMap<>();
   entries.put("key1", "value1");
   entries.put("key2", "value2");

   writeOnlyMap.evalMany(entries, (v, writeView) -> writeView.set(v))
      .thenCompose(ignore -> writeOnlyMap.eval("key1", view -> view.remove()))
      .get(); // Wait for completable future
   }
{code}

^ This prints:

{code}
Written (via onWrite): Optional[value1]
Written (via onWrite): Optional[value2]
Written (via onWrite): Optional.empty
{code}


was (Author: galder.zamarreno):
The issue might be slightly different. The following does not work:

{code}
FunctionalMap.WriteOnlyMap<String, String> writeOnlyMap = ...

// `written` is a ReadEntryView of the written entry
try(AutoCloseable handler = writeOnlyMap.listeners().onWrite(written ->
      System.out.printf("Written (via onWrite): %s%n", written.find()))) {
   Map<String, String> entries = new HashMap<>();
   entries.put("key1", "value1");
   entries.put("key2", "value2");

   writeOnlyMap.evalMany(entries, (v, writeView) -> writeView.set(v))
      .thenAccept(ignore -> writeOnlyMap.eval("key1", view -> view.remove()))
      .get(); // Wait for completable future
   }
{code}

^ It prints:

{code}
Written (via onWrite): Optional[value1]
Written (via onWrite): Optional[value2]
{code}

Whereas this works:

FunctionalMap.WriteOnlyMap<String, String> writeOnlyMap = ...

// `written` is a ReadEntryView of the written entry
try(AutoCloseable handler = writeOnlyMap.listeners().onWrite(written ->
      System.out.printf("Written (via onWrite): %s%n", written.find()))) {
   Map<String, String> entries = new HashMap<>();
   entries.put("key1", "value1");
   entries.put("key2", "value2");

   writeOnlyMap.evalMany(entries, (v, writeView) -> writeView.set(v))
      .thenCompose(ignore -> writeOnlyMap.eval("key1", view -> view.remove()))
      .get(); // Wait for completable future
   }
{code}

^ This prints:

{code}
Written (via onWrite): Optional[value1]
Written (via onWrite): Optional[value2]
Written (via onWrite): Optional.empty
{code}

> WriteOnlyMap.evalAll and eval remove do not produce listener events
> -------------------------------------------------------------------
>
>                 Key: ISPN-5848
>                 URL: https://issues.jboss.org/browse/ISPN-5848
>             Project: Infinispan
>          Issue Type: Sub-task
>            Reporter: Galder Zamarreño
>            Assignee: Galder Zamarreño
>             Fix For: 8.1.0.Final
>
>
> Neither WriteOnlyMap.evalAll() nor WriteOnlyMap.eval() generate listener events when removing entries.



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)



More information about the infinispan-issues mailing list