private void wrapEntryForRemoveIfNeeded(InvocationContext ctx, RemoveCommand command) throws InterruptedException { if (shouldWrap(command.getKey(), ctx, command)) { boolean forceWrap = command.getValueMatcher().nonExistentEntryCanMatch(); EntryFactory.Wrap wrap = forceWrap ? EntryFactory.Wrap.WRAP_ALL : EntryFactory.Wrap.WRAP_NON_NULL; boolean skipRead = command.hasFlag(Flag.IGNORE_RETURN_VALUES) && !command.isConditional(); entryFactory.wrapEntryForWriting(ctx, command.getKey(), wrap, skipRead, false); } }
@Override public Object visitRemoveCommand(InvocationContext ctx, RemoveCommand command) throws Throwable { if (cdl.localNodeIsOwner(command.getKey())) { boolean forceWrap = command.getValueMatcher().nonExistentEntryCanMatch(); EntryFactory.Wrap wrap = forceWrap ? EntryFactory.Wrap.WRAP_ALL : EntryFactory.Wrap.WRAP_NON_NULL; entryFactory.wrapEntryForWriting(ctx, command.getKey(), wrap, false, false); ctx.forkInvocationSync(command); } return null; }