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

Gavin King gavin.king at jboss.com
Mon Jun 18 11:53:55 EDT 2007


  User: gavin   
  Date: 07/06/18 11:53:55

  Modified:    src/main/org/jboss/seam/persistence 
                        HibernatePersistenceProvider.java
  Log:
  fix npes
  
  Revision  Changes    Path
  1.11      +24 -4     jboss-seam/src/main/org/jboss/seam/persistence/HibernatePersistenceProvider.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: HibernatePersistenceProvider.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/persistence/HibernatePersistenceProvider.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -b -r1.10 -r1.11
  --- HibernatePersistenceProvider.java	18 Jun 2007 05:57:35 -0000	1.10
  +++ HibernatePersistenceProvider.java	18 Jun 2007 15:53:55 -0000	1.11
  @@ -13,6 +13,7 @@
   import org.hibernate.metadata.ClassMetadata;
   import org.jboss.seam.InterceptionType;
   import org.jboss.seam.ScopeType;
  +import org.jboss.seam.Seam;
   import org.jboss.seam.annotations.FlushModeType;
   import org.jboss.seam.annotations.Install;
   import org.jboss.seam.annotations.Intercept;
  @@ -57,10 +58,7 @@
      @Override
      public Object getVersion(Object bean, EntityManager entityManager) 
      {
  -      ClassMetadata classMetadata = getSession(entityManager).getSessionFactory()
  -                  .getClassMetadata( bean.getClass() );
  -      return classMetadata.isVersioned() ? 
  -               classMetadata.getVersion(bean, EntityMode.POJO) : null;
  +      return getVersion( bean, getSession(entityManager) );
      }
   
      @Override
  @@ -92,4 +90,26 @@
         return (Session) entityManager.getDelegate();
      }
   
  +   public static Object getVersion(Object value, Session session)
  +   {
  +      Class entityClass = Seam.getEntityClass( value.getClass() );
  +      if (entityClass==null)
  +      {
  +         return null;
  +      }
  +      else
  +      {
  +         ClassMetadata classMetadata = session.getSessionFactory().getClassMetadata(entityClass);
  +         if (classMetadata==null)
  +         {
  +            throw new IllegalArgumentException( 
  +                     "Could not find ClassMetadata object for entity class: " + 
  +                     entityClass.getName() 
  +                  );
  +         }
  +         return classMetadata.isVersioned() ? 
  +                  classMetadata.getVersion(value, EntityMode.POJO) : null;
  +      }
  +   }
  +
   }
  
  
  



More information about the jboss-cvs-commits mailing list