[
https://issues.jboss.org/browse/ISPN-1213?page=com.atlassian.jira.plugin....
]
Galder Zamarreño commented on ISPN-1213:
----------------------------------------
@Nathan, as indicated by Manik, the fix is no trivial. You might be able to workaround
this by plugging your own data container into Infinispan. You can do this by extending
DefaultDataContainer and then your own implementation in the config (via xml or
programmatically). The idea is that you'd override purgeExpired() and you'd check
whether the entry expired has any children and maybe clear the contents rather than
deleting the node altogether. You'd also need to override get() cos if the entry is
expired, it'd directly remove it. Note that I have not tested this and not sure
whether you'd be able to find out whether a node has children from purgeExpired(), but
if you're desperate and as Manik said, you can't work around walking the tree, it
might be worth a try.
TreeCache expires parents that have children
--------------------------------------------
Key: ISPN-1213
URL:
https://issues.jboss.org/browse/ISPN-1213
Project: Infinispan
Issue Type: Bug
Components: Eviction
Affects Versions: 4.2.1.FINAL
Reporter: Todd Ciezadlo
Assignee: Manik Surtani
Fix For: 5.2.0.FINAL
Attachments: ExpirationTest.java, TreeCacheUtil.java
TreeCache parents expire according to the max-idle value even if they contain children.
This puts the tree cache in an inconsistent state since the "dangling" children
can be retrieved through TreeCache.get(FQN, String) calls, but cannot be traversed to
through TreeCache.getRoot() and Node.getChildren() calls.
Attached unit test to to reproduce.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira