Details
-
Bug
-
Resolution: Cannot Reproduce
-
Critical
-
None
-
3.0 M3
-
Unknown
-
Description
I have not identified the cause of this yet but it has been observed on xwiki.org.
My hypothesis:
Somewhere, someone is not ending a transaction.
After their work is done and they leave the transaction open, they call getDocument()
getDocument() dutifully calls context.setDatabase() to change from the subwiki to the main wiki.
getDocument() calls the cache and asks for the document. The cache, not having the document, calls the store and asks it to load the document.
The store calls beginTransaction() but since the prior transaction was never closed, the new transaction is not begun and the database is not changed.
The store attempts to load the document from the subwiki and not being able to find it, returns an empty document.
The empty document is inserted into the cache but for the wrong wiki.
Then when someone on the main wiki asks for a document which is there, they get a message about no such document because the cache has an empty document stored under that name.