[hibernate-commits] Hibernate SVN: r11158 - branches/HAN_SPLIT/HibernateExt/validator/src/java/org/hibernate/validator/event.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Feb 6 17:44:15 EST 2007


Author: epbernard
Date: 2007-02-06 17:44:15 -0500 (Tue, 06 Feb 2007)
New Revision: 11158

Modified:
   branches/HAN_SPLIT/HibernateExt/validator/src/java/org/hibernate/validator/event/JPAValidateListener.java
Log:
Weak references were too weak

Modified: branches/HAN_SPLIT/HibernateExt/validator/src/java/org/hibernate/validator/event/JPAValidateListener.java
===================================================================
--- branches/HAN_SPLIT/HibernateExt/validator/src/java/org/hibernate/validator/event/JPAValidateListener.java	2007-02-06 21:30:14 UTC (rev 11157)
+++ branches/HAN_SPLIT/HibernateExt/validator/src/java/org/hibernate/validator/event/JPAValidateListener.java	2007-02-06 22:44:15 UTC (rev 11158)
@@ -4,12 +4,15 @@
 import java.lang.ref.WeakReference;
 import java.util.Map;
 import java.util.WeakHashMap;
+import java.util.Set;
+import java.util.HashSet;
 import javax.persistence.PrePersist;
 import javax.persistence.PreUpdate;
 
 import org.hibernate.validator.ClassValidator;
 
 /**
+ * Java Persistence Entity Listener 
  * @author Emmanuel Bernard
  */
 public class JPAValidateListener {
@@ -23,6 +26,9 @@
 		NO_VALIDATOR = new ClassValidator<JPAValidateListener>( JPAValidateListener.class);
 	}
 
+	//keep hardref at the instance level
+	private final Set<ClassValidator> currentValidators = new HashSet<ClassValidator>();
+
 	@PrePersist
 	@PreUpdate
 	@SuppressWarnings( "unchecked" )
@@ -39,6 +45,7 @@
 				validator = NO_VALIDATOR;
 			}
 			validators.put( entity, new WeakReference<ClassValidator>(validator) );
+			currentValidators.add( validator );
 		}
 		if ( validator != NO_VALIDATOR ) {
 			validator.assertValid( object );




More information about the hibernate-commits mailing list