Hey Pedro,
Thanks very much for the test cases.
Yes please, create a single JIRA addressing the 3 issues. That should be enough.
I'd suggest you check with Manik on the fixes that you're unsure about since
he's the specialist on that area.
Cheers,
On Sep 11, 2012, at 8:14 PM, Pedro Ruivo <pruivo(a)gsd.inesc-id.pt> wrote:
Hi all,
While I was working in Infinispan, I have found some issues with the
versioned transactional cache. I have created some tests cases (can be
found here [1]) to reproduce the issues and also I have fixed one of
them. The issues are the following:
1) testPutIfAbsent, testRemoveIfPresent, testReplaceWithOldVal (methods
the test cases)
In this tests, it was updating the cache entry with a null version. This
originates later a IllegalStateException when it tries to perform the
write skew check and the version is null.
I have fixed this problem in this way: if the command fails (PutCommand,
RemoveCommand, ReplaceCommand), I unset the flag CHANGED in the
MvccEntry to avoid to update the entry in the DataContainer.
2) testClear in distributed mode
I have no clear idea how to solve this problem but it looks like the
PrepareCommand (with the ClearCommand) is not sent to all the nodes in
the cluster. Then, when I do a get, a remote get is performed and the
key is still there. I think that it is not the desired behavior.
3) testRemoveUnexistingEntry
In this test, it tries to remove a key that does not exists but it does
not success due to a NullPointerException. I have looked deeper and I
check that the transaction's lookup entries map has an entry with [key
=> null] and when it tries to perform the write skew check in that key,
a NullPointerException is thrown in here [2] (line 80, WriteSkewHelper)
Should I open a JIRA with this 3 issues (or 3 JIRAs, one for each issue)?
If you want, I can issue a pull request too.
Cheers,
Pedro Ruivo
[1]
https://github.com/pruivo/infinispan/tree/t_replace_fix
[2]
https://github.com/pruivo/infinispan/blob/t_replace_fix/core/src/main/jav...
_______________________________________________
infinispan-dev mailing list
infinispan-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev
--
Galder Zamarreño
galder(a)redhat.com
twitter.com/galderz
Project Lead, Escalante
http://escalante.io
Engineer, Infinispan
http://infinispan.org