I'd expect the first assertion to fail. The context instance cannot be recycled in the session, because you can have several transactions in one session running in parallel (start one tx, suspend it, start another...). Not sure how the current implementation of Session copes with isolation of transactions in the same session, but I am not aware that this would be illegal. The second assertion should not fail, because getSession() should return the same instance of Session. As I've mentioned parallel transactions, session.getTransactionStartTimestamp() would be overwritten each time a transaction is started, therefore it's not really reliable (after second transaction commits and first is resumed, the timestamp would belong to the second tx). Context should fetch this timestamp when it's created and this is the value that should be used throughout the rest of the code. |