[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