[
http://jira.jboss.com/jira/browse/JBCACHE-1292?page=all ]
Mircea Markus updated JBCACHE-1292:
-----------------------------------
Fix Version/s: 1.4.X
(was: 1.4.1.SP9)
endless loop on concurrent remove
---------------------------------
Key: JBCACHE-1292
URL:
http://jira.jboss.com/jira/browse/JBCACHE-1292
Project: JBoss Cache
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 1.4.1.SP1
Reporter: Mircea Markus
Assigned To: Manik Surtani
Fix For: 1.4.X
Attachments: ConcurrentPutRemoveTest.java, TestingUtil.java
Attached test fails on 1.4.1 SP1 and works on 1.4.0.SP1.
Issue was introduced in repository version 3089/TreeCache (see code snippet below).
On trunk this problem does not appear as the code logic is equivalent with the one before
repository version 3089.
Guess the fix would be to change the logic to the one prio 3089, but this needs
additional investigation.
(look for the word FAILURE in code below)
private Node findInternal(Fqn fqn, boolean includeNodesMarkedAsRemoved)
{
if (fqn == null || fqn.size() == 0) return (Node) root;
TreeNode n = root;
int fqnSize = fqn.size();
for (int i = 0; i < fqnSize; i++)
{
Object obj = fqn.get(i);
n = n.getChild(obj);
if (n == null)
return null;
else if (!includeNodesMarkedAsRemoved && ((DataNode)
n).isMarkedForRemoval())//FAILURE!!!! this condition was not present in 1.4.0SP1, removing
it makes the test pass
return null;
}
return (Node) n;
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira