RE: [picocontainer-dev] SynchronizedComponentAdapter ???
Jörg Schaible <[email protected]>
| Newsgroups | gmane.comp.java.picocontainer.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Paul,
Paul Hammant wrote on Tuesday, May 22, 2007 5:17 PM:
> 'Monster' is relative ;-)
>
> One new member var 'lock' (that's final), and ....
>
> public Object getComponentInstance(PicoContainer container)
> throws PicoInitializationException,
> PicoIntrospectionException, AssignabilityRegistrationException,
> NotConcreteRegistrationException {
> if (instanceReference.get() == null) {
> Object tmp = super.getComponentInstance(container);
> synchronized (lock) {
> if (instanceReference.get() == null) {
> instanceReference.set(tmp);
> }
> }
> }
> return instanceReference.get();
> }
>
> instead of ....
>
> public Object getComponentInstance(PicoContainer container)
> throws PicoInitializationException,
> PicoIntrospectionException, AssignabilityRegistrationException,
> NotConcreteRegistrationException {
> Object instance = instanceReference.get();
> if (instance == null) {
> instance = super.getComponentInstance(container);
> instanceReference.set(instance);
> }
> return instance;
> }
>
> It gets rid of two classes, and is the minimally contentious way in
> that synchronized could be done for CCA.
>
> Thoughts?
So, will you synchronize always (Hint: Why exist StringBuilder)? ;-)
And, will you also add the synchronization to the PoolingCA in consequence (and other CA impls that have some sort of cache that might be initialized twice e.g. ApplicationContextCA or ServletContextCA)?
- Jörg
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email