[jboss-cvs] jboss-seam/src/main/org/jboss/seam/contexts ...

Gavin King gavin.king at jboss.com
Thu Jun 21 17:55:30 EDT 2007


  User: gavin   
  Date: 07/06/21 17:55:30

  Modified:    src/main/org/jboss/seam/contexts  
                        AbstractEntityBeanCollection.java EntityBean.java
  Log:
  better impl
  
  Revision  Changes    Path
  1.2       +14 -1     jboss-seam/src/main/org/jboss/seam/contexts/AbstractEntityBeanCollection.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: AbstractEntityBeanCollection.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/contexts/AbstractEntityBeanCollection.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- AbstractEntityBeanCollection.java	21 Jun 2007 21:45:30 -0000	1.1
  +++ AbstractEntityBeanCollection.java	21 Jun 2007 21:55:30 -0000	1.2
  @@ -2,20 +2,33 @@
   
   abstract class AbstractEntityBeanCollection implements Wrapper
   {
  +   private transient boolean initialized;
  +   
  +   protected AbstractEntityBeanCollection()
  +   {
  +      initialized = true;
  +   }
  +   
      public final void activate()
      {
         if ( isPassivatedEntitiesInitialized() && isAnyVersioned() )
         {
            activateAll();
  +         initialized = true;
  +      }
  +      else
  +      {
  +         initialized = false;
         }
      }
   
      public final Object getInstance()
      {
  -      if ( isPassivatedEntitiesInitialized() && !isAnyVersioned() )
  +      if ( !initialized && isPassivatedEntitiesInitialized() )
         {
            activateAll();
         }
  +      initialized = true;
         return getEntityCollection();
      }
      
  
  
  
  1.13      +10 -2     jboss-seam/src/main/org/jboss/seam/contexts/EntityBean.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: EntityBean.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/contexts/EntityBean.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -b -r1.12 -r1.13
  --- EntityBean.java	21 Jun 2007 21:45:30 -0000	1.12
  +++ EntityBean.java	21 Jun 2007 21:55:30 -0000	1.13
  @@ -17,20 +17,23 @@
      
      private Object instance;
      private PassivatedEntity passivatedEntity;
  +   private transient boolean initialized;
      
      public EntityBean(Object instance)
      {
         this.instance = instance;
  +      initialized = true;
      }
      
      //TODO: use @Unwrap
      public Object getInstance()
      {
  -      if ( passivatedEntity!=null && !passivatedEntity.isVersioned() ) 
  +      if ( !initialized && passivatedEntity!=null ) 
         {
            //non-versioned entities can be lazily unpassivated 
            instance = passivatedEntity.toEntityReference(true);
         }
  +      initialized = true;
         return instance;
      }
      
  @@ -45,7 +48,7 @@
            else
            {
               passivatedEntity = passivateEntity(instance);
  -            if (passivatedEntity!=null) instance = null;
  +            if (passivatedEntity!=null) instance = null; //for performance of serialization
            }
            return true;
         }
  @@ -62,6 +65,11 @@
         if ( passivatedEntity!=null && passivatedEntity.isVersioned() )
         {
            instance = passivatedEntity.toEntityReference(true);
  +         initialized = true;
  +      }
  +      else
  +      {
  +         initialized = false;
         }
      }
      
  
  
  



More information about the jboss-cvs-commits mailing list