Thanks for your answers. They are very helpful. See comments inline.
Kevin Lewis wrote:
> Kevin Lewis wrote:
>> In other words, if a record no longer had a transaction pointer, it
>> ended before any transaction that would be calling getRelativeState()
>> ever started.
> This implies that the code you are worried about is no longer used or
> // Be sure it was not active when we started.
> for (int n = 0; n < numberStates; ++n)
> if (states [n].transactionId == transId)
> return CommittedInvisible;
I too had almost concluded (on Friday) that this code should never been
hit both based on the code, the comments and by tracing test runs with
it. But then I found (with the new dependency manager) that some of the
"null pointer transactions" actually was still "active" and had to
re-evaluate. But as you suggest this might be due to some bug that I
have introduced :-(
> Can you run a test to see if that return is EVER hit in the current code?
Yes, I will - and report back my findings.