Is this expeced behaviour:
I'm running some tests for BeanMetaDataICF:
ManagedObjectFactory factory = ManagedObjectFactory.getInstance(); BeanInstanceClassFactory instanceClassFactory = new BeanInstanceClassFactory(); factory.setInstanceClassFactory(AbstractBeanMetaData.class, instanceClassFactory);
public <T extends Serializable> InstanceClassFactory<T> getInstanceClassFactory(Class<T> clazz) { synchronized (instanceFactories) { WeakReference<InstanceClassFactory> weak = instanceFactories.get(clazz); if (weak != null) return weak.get(); } return (InstanceClassFactory<T>)this; }
factory.setInstanceClassFactory(AbstractBeanMetaData.class, instanceClassFactory); try { ... } finally { factory.setInstanceClassFactory(AbstractBeanMetaData.class, null); }
I guess we need to remove WeakReference wrapper?
Map<Class, InstanceClassFactory> instanceFactories = new WeakHashMap<Class, InstanceClassFactory>();