User: patriot1burke
  Date: 01/08/08 15:00:46

  Modified:    src/main/org/jboss/ejb/plugins
                        EntitySynchronizationInterceptor.java
                        EntityLockInterceptor.java
                        EntityInstanceInterceptor.java
  Log:
  refactored BeanLock interface
  added scheduling to invokeHome.
  
  Revision  Changes    Path
  1.51      +16 -2     
jboss/src/main/org/jboss/ejb/plugins/EntitySynchronizationInterceptor.java
  
  Index: EntitySynchronizationInterceptor.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/EntitySynchronizationInterceptor.java,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- EntitySynchronizationInterceptor.java     2001/08/07 18:06:56     1.50
  +++ EntitySynchronizationInterceptor.java     2001/08/08 22:00:46     1.51
  @@ -57,7 +57,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Marc Fleury</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Scott Stark</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Bill Burke</a>
  - * @version $Revision: 1.50 $
  + * @version $Revision: 1.51 $
    *
    * <p><b>Revisions:</b><br>
    * <p><b>2001/06/28: marcf</b>
  @@ -95,6 +95,7 @@
    * <p><b>2001/08/07: billb</b>
    * <ol>
    *   <li>Moved storeEntity to EntityContainer.
  + *   <li>invokeHome is now scheduled
    * </ol>
    */
   public class EntitySynchronizationInterceptor
  @@ -232,7 +233,20 @@
               // Currently synched with underlying storage
               ctx.setValid(true);
       
  -            if (tx!= null) register(ctx, tx); // Set tx
  +            if (tx!= null)
  +            {
  +               BeanLock lock = 
container.getLockManager().getLock(ctx.getCacheKey());
  +               try
  +               {
  +                  lock.schedule(mi);
  +                  register(ctx, tx); // Set tx
  +                  lock.releaseMethodLock();
  +               }
  +               finally
  +               {
  +                  container.getLockManager().removeLockRef(lock.getId());
  +               }
  +            }
            }
         }
      }
  
  
  
  1.5       +6 -16     jboss/src/main/org/jboss/ejb/plugins/EntityLockInterceptor.java
  
  Index: EntityLockInterceptor.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/EntityLockInterceptor.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- EntityLockInterceptor.java        2001/08/03 20:11:26     1.4
  +++ EntityLockInterceptor.java        2001/08/08 22:00:46     1.5
  @@ -56,7 +56,7 @@
   *    
   * @author <a href="mailto:[EMAIL PROTECTED]";>Marc Fleury</a>
   * @author <a href="mailto:[EMAIL PROTECTED]";>Bill Burke</a>
  -* @version $Revision: 1.4 $
  +* @version $Revision: 1.5 $
   *
   * <p><b>Revisions:</b><br>
   * <p><b>2001/07/30: marcf</b>
  @@ -65,6 +65,10 @@
   *   <li>Factorization of the lock out of the context in cache
   *   <li>The new locking is implement as "scheduling" in the lock which allows for 
pluggable locks
   * </ol>
  +* <p><b>2001/08/07: billb</b>
  +* <ol>
  +*   <li>Removed while loop and moved it to SimplePessimisticEJBLock where it 
belongs.
  +* </ol>
   */
   public class EntityLockInterceptor
      extends AbstractInterceptor
  @@ -125,21 +129,7 @@
         {
            lock = (BeanLock)container.getLockManager().getLock(key);
      
  -         while (!threadIsScheduled)
  -         { 
  -            if( trace ) log.trace("new while(threadNotScheduled) for key"+key);
  -     
  -    
  -            /**
  -             * schedule will implement the actual lock policy in the lock
  -             * we provide a default "pessimistic lock" on the transaction
  -             * as well as the default serialization required by the specification
  -             * the method releases the sync if the thread isn't scheduled and goes 
to wait
  -             * upon waking up it must go through the schedule again
  -             * Also schedule must add a methodLock
  -             */
  -            threadIsScheduled = lock.schedule(mi);
  -         }
  +         lock.schedule(mi);
      
            try {
       
  
  
  
  1.43      +5 -8      
jboss/src/main/org/jboss/ejb/plugins/EntityInstanceInterceptor.java
  
  Index: EntityInstanceInterceptor.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/EntityInstanceInterceptor.java,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- EntityInstanceInterceptor.java    2001/08/07 18:34:11     1.42
  +++ EntityInstanceInterceptor.java    2001/08/08 22:00:46     1.43
  @@ -61,7 +61,7 @@
   * @author <a href="mailto:[EMAIL PROTECTED]";>Marc Fleury</a>
   * @author <a href="mailto:[EMAIL PROTECTED]";>Scott Stark</a>
   * @author <a href="mailto:[EMAIL PROTECTED]";>Bill Burke</a>
  -* @version $Revision: 1.42 $
  +* @version $Revision: 1.43 $
   *
   * <p><b>Revisions:</b><br>
   * <p><b>2001/06/28: marcf</b>
  @@ -164,11 +164,8 @@
                                
               lock.sync(); // lock all access to BeanLock
                                
  -            try {
  -                                     
  -               // Set the transaction on the lock it will protect the instance
  -               lock.setTransaction(ctx.getTransaction());
  -                                     
  +            try 
  +            {
                  // marcf: possible race on creation and usage
                  // insert instance in cache, 
                  container.getInstanceCache().insert(ctx);
  @@ -177,7 +174,6 @@
               finally
               {
                  lock.releaseSync();
  -                                     
                  container.getLockManager().removeLockRef(ctx.getCacheKey());
               }
            }
  @@ -215,7 +211,8 @@
         {
            exceptionThrown = true;
            throw e;
  -      } catch (RuntimeException e)
  +      } 
  +      catch (RuntimeException e)
         {
            exceptionThrown = true;
            throw e;
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to