// cache miss
settings = (BeansWrapperConfiguration) settings.clone(true); // prevent any aliasing issues
instance = beansWrapperSubclassFactory.create(settings);
if (!instance.isWriteProtected()) {
throw new BugException();
}
synchronized (instanceCache) {
instanceRef = (Reference) tcclScopedCache.get(settings);
BeansWrapper concurrentInstance = instanceRef != null ? (BeansWrapper) instanceRef.get() : null;