[
https://issues.jboss.org/browse/ISPN-3795?page=com.atlassian.jira.plugin....
]
Gustavo Fernandes commented on ISPN-3795:
-----------------------------------------
Sent a PR for the specific case of the Remove and Replace command, where the value needed
is available in the command itself, so it's trivial to detect if the command is
conditional and avoid looking at the return value, and look in the command instead.
The trouble with the context lookup is that if the command originates in a non-owner,
there will not be any entry in the context. As [~pruivo] was saying, even if the entry is
fetched remotely, it may change between the time it is fetched and the time the primary
owner executes the command.
QueryInterceptor incorrectly relies on the return value of a
RemoveCommand
--------------------------------------------------------------------------
Key: ISPN-3795
URL:
https://issues.jboss.org/browse/ISPN-3795
Project: Infinispan
Issue Type: Bug
Components: Embedded Querying
Affects Versions: 6.0.0.Final
Reporter: Dan Berindei
Assignee: Gustavo Fernandes
QueryInterceptor uses the return value from RemoveCommand/ReplaceCommand to remove the
value from the index.
But both RemoveCommand and ReplaceCommand have a variant with an expected value
parameter, and this variant return a boolean value instead of the removed/replaced value.
In that case, the previous value won't be removed from the index.
QueryInterceptor should probably use the previous value from the context entries to
update the index instead.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)