[Originals Snipped]
IMHO the bigger question is where you set the boundary for 'trusted' code.
It's really the 'public' APIs and services/modules that should ensure all
arugments are valid before proceeding. The inner workings of Geronimo should
really be able to trust that it's being invoked correctly - it becomes a DbC
issue (adding @pre, @post, etc javadoc tags might be an idea).
Whilst i'm sure in the early days of development/integration adding IAE everywhere will speed up fault diagnosis there is a potential that performance will suffer down the road.
I'm not sure it will actually make that much difference. You are just doing a single 'if' test, not unlike logging messages.
I'm sure we could argue that taking out all debugging/logging messages will make the code go faster, but it'll certainly be easier to manage with it in.
And remember, 95% of the time is only spent in 5% of the code -- so only optimise that 5%, and only then do it after you've shown there is a bottleneck worthy of optimisation :-)
Alex.
