In EntityInstanceCache.canPassivate(EnterpriseContext ctx) 
there is the following statement:

 else if 
(m_container.getLockManager().canPassivate(((EntityEnterpriseContext)ctx).getCacheKey()))
 
{ 
    return false; 
} 

The corresponding BeanLockManager.canPassivate(Object) code is:

   public synchronized boolean canPassivate(Object id)
   {
      if (id == null)
         throw new IllegalArgumentException("Attempt to passivate with a null object");
      BeanLock lock = (BeanLock)map.get(id);
      if (lock == null)
         throw new IllegalStateException("Attempt to passivate without a lock");

      return (lock.getRefs() > 1);
   }

This seems like a strange reversal of the 'can passisvate x' assertion. I would expect
that this is true if there are no lock references. The usage from the 
EntityInstanceCache.canPassivate
seems consistent with this reversed semantic but it is confusing. If the 
BeanLockManager.canPassivate
call is true then EntityInstanceCache.canPassivate is false and visa-versa. Please 
clarify this
so myself and others don't get a headache looking at this code.


xxxxxxxxxxxxxxxxxxxxxxxx
Scott Stark
Chief Technology Officer
JBoss Group, LLC
xxxxxxxxxxxxxxxxxxxxxxxx


-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to