[jboss-dev-forums] [Design the new POJO MicroContainer] - getInstanceClassFactory in ManagedObjectFactory

alesj do-not-reply at jboss.com
Thu Oct 18 10:57:59 EDT 2007


Is this expeced behaviour:

I'm running some tests for BeanMetaDataICF:

  |       ManagedObjectFactory factory = ManagedObjectFactory.getInstance();
  |       BeanInstanceClassFactory instanceClassFactory = new BeanInstanceClassFactory();
  |       factory.setInstanceClassFactory(AbstractBeanMetaData.class, instanceClassFactory);
  | 
Which adds InstanceClassFactory for AbstractBeanMetaData.class.

But then I was getting weird NPE exception in BeanManagedDeploymentUnitTestCase.
AbstractManagedObjectFactory.getInstanceClassFactory was still holding weak ref for AbstractBeanMetaData.class, but the actual referent was null.

  |    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;
  |    }
  | 

Adding try/finally to my BeanMDICF test did the trick.

  |       factory.setInstanceClassFactory(AbstractBeanMetaData.class, instanceClassFactory);
  |       try
  |       {
  |           ...
  |       }
  |       finally
  |       {
  |          factory.setInstanceClassFactory(AbstractBeanMetaData.class, null);
  |       }
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4096598#4096598

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4096598



More information about the jboss-dev-forums mailing list