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 );
Show replies by date