As discussed on this thread:
If a Compass transaction is committed between running a search and retrieving the hits, for example, any of the following 3 Lucene exceptions might get thrown:
org.apache.lucene.store.AlreadyClosedException: this IndexReader is closed
java.io.IOException: The handle is invalid
java.io.IOException: Read error
It would be nice if Compass could detect invalid transaction management like this and throw an error, something to the effect that the search and hit retrieval must occur in the same transaction, for example.