Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-5653

keySet().iterator() does not propagate flags to remove()

    XMLWordPrintable

    Details

      Description

      Calling remove() on iterator obtained through keySet() does not propagate flags from the original (decorated) cache. Test case (should go into BaseEntryRetrieverTest):

         @Test
         public void simpleTestWithFlags() {
            Map<Object, String> values = putValuesInCache();
       
            final Cache<Object, Object> cache = cache(0, CACHE_NAME);
            cache.getAdvancedCache().addInterceptor(new BaseCustomInterceptor() {
               @Override
               public Object visitRemoveCommand(InvocationContext ctx, RemoveCommand command) throws Throwable {
                  assertTrue(command.hasFlag(Flag.SKIP_CACHE_STORE));
                  return super.visitRemoveCommand(ctx, command);
               }
            }, 0);
            for (Iterator it = cache(0, CACHE_NAME).getAdvancedCache().withFlags(Flag.SKIP_CACHE_STORE).keySet().iterator(); it.hasNext();) {
               assertTrue(values.containsKey(it.next()));
               it.remove();
            }
         }
      

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                william.burns William Burns
                Reporter:
                rvansa Radim Vansa
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: