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

Gavin King gavin.king at jboss.com
Fri Jul 6 15:42:55 EDT 2007


  User: gavin   
  Date: 07/07/06 15:42:55

  Modified:    src/main/org/jboss/seam/framework    EntityHome.java
                        EntityIdentifier.java EntityQuery.java
  Log:
  JBSEAM-1614
  
  Revision  Changes    Path
  1.19      +10 -1     jboss-seam/src/main/org/jboss/seam/framework/EntityHome.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: EntityHome.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/EntityHome.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -b -r1.18 -r1.19
  --- EntityHome.java	18 Jun 2007 01:20:26 -0000	1.18
  +++ EntityHome.java	6 Jul 2007 19:42:55 -0000	1.19
  @@ -1,9 +1,11 @@
   package org.jboss.seam.framework;
   
   import javax.persistence.EntityManager;
  +import javax.transaction.SystemException;
   
   import org.jboss.seam.annotations.Transactional;
   import org.jboss.seam.persistence.PersistenceProvider;
  +import org.jboss.seam.transaction.Transaction;
   
   /**
    * Base class for Home objects of JPA entities.
  @@ -81,7 +83,14 @@
      {
         if ( getEntityManager().isOpen() )
         {
  -         getEntityManager().joinTransaction();
  +         try
  +         {
  +            Transaction.instance().enlist( getEntityManager() );
  +         }
  +         catch (SystemException se)
  +         {
  +            throw new RuntimeException("could not join transaction", se);
  +         }
         }
      }
      
  
  
  
  1.4       +10 -4     jboss-seam/src/main/org/jboss/seam/framework/EntityIdentifier.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: EntityIdentifier.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/EntityIdentifier.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- EntityIdentifier.java	26 Jun 2007 00:59:34 -0000	1.3
  +++ EntityIdentifier.java	6 Jul 2007 19:42:55 -0000	1.4
  @@ -1,12 +1,11 @@
  -/**
  - * 
  - */
   package org.jboss.seam.framework;
   
   import javax.persistence.EntityManager;
  +import javax.transaction.SystemException;
   
   import org.jboss.seam.Entity;
   import org.jboss.seam.persistence.PersistenceProvider;
  +import org.jboss.seam.transaction.Transaction;
   
   public class EntityIdentifier extends Identifier<EntityManager>
   {
  @@ -22,7 +21,14 @@
         {
            throw new IllegalArgumentException("EntityManager must not be null");
         }
  -      entityManager.joinTransaction();
  +      try
  +      {
  +         Transaction.instance().enlist(entityManager);
  +      }
  +      catch (SystemException se)
  +      {
  +         throw new RuntimeException("could not join transaction", se);
  +      }
         return entityManager.find(getClazz(), getId());
      }
      
  
  
  
  1.16      +18 -2     jboss-seam/src/main/org/jboss/seam/framework/EntityQuery.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: EntityQuery.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/framework/EntityQuery.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -b -r1.15 -r1.16
  --- EntityQuery.java	19 May 2007 01:36:37 -0000	1.15
  +++ EntityQuery.java	6 Jul 2007 19:42:55 -0000	1.16
  @@ -4,9 +4,11 @@
   import java.util.Map;
   
   import javax.persistence.EntityManager;
  +import javax.transaction.SystemException;
   
   import org.jboss.seam.annotations.Transactional;
   import org.jboss.seam.persistence.QueryParser;
  +import org.jboss.seam.transaction.Transaction;
   
   /**
    * A Query object for JPA.
  @@ -137,7 +139,8 @@
         
         evaluateAllParameters();
         
  -      getEntityManager().joinTransaction();
  +      joinTransaction();
  +      
         javax.persistence.Query query = getEntityManager().createQuery( getRenderedEjbql() );
         setParameters( query, getQueryParameterValues(), 0 );
         setParameters( query, getRestrictionParameterValues(), getQueryParameterValues().size() );
  @@ -159,7 +162,8 @@
   
         evaluateAllParameters();
   
  -      getEntityManager().joinTransaction();
  +      joinTransaction();
  +      
         javax.persistence.Query query = getEntityManager().createQuery( getCountEjbql() );
         setParameters( query, getQueryParameterValues(), 0 );
         setParameters( query, getRestrictionParameterValues(), getQueryParameterValues().size() );
  @@ -188,4 +192,16 @@
         this.hints = hints;
      }
   
  +   protected void joinTransaction()
  +   {
  +      try
  +      {
  +         Transaction.instance().enlist( getEntityManager() );
  +      }
  +      catch (SystemException se)
  +      {
  +         throw new RuntimeException("could not join transaction", se);
  +      }
  +   }
  +
   }
  
  
  



More information about the jboss-cvs-commits mailing list