Fine. In the short term that won't work because the boot sequence includes initializing the bean from the properties file and then from the '3rd party' bean injection framework (JBossMC), so we can't base the locking on number of setter invocations. We would need an explicit 'getAndLock' rather than 'get' to allow the point of use to disallow further changes. Which really is a special case of the aforementioned event mechanism and winds up looking a lot like javabeans property change listener/veto.