Bernd, firstly, thank you VERY much for putting this energy into this issue! Also, thank
you for the clear and detailed notes about your investigations, it is extremely helpful.
I will try to find some time this weekend to replicate your findings in detail, and to see
if I can add any additional clarity to your observations so far.
My instinct is that the initialization loop that you describe is not really a hack, it is a
reasonable approach to correctly setting up the runtime data structures, including
the table descriptors.
I agree with you that it is disturbing that "getTableDescriptor()" is the routine that
gets used to initialize the table descriptor, although this sort of "initialize upon first
reference" is not all that uncommon in the Derby codebase.
The other question is where, precisely, we want that initialization loop to be, but as
a first guess, line 86 of TriggerEventActivator seems like a place to start.
As I said, I will try to find a few hours soon to dig through the code and catch up
with your findings and give you some more feedback about whatever I might learn.