|
From: <hib...@li...> - 2006-04-01 21:35:23
|
Author: epbernard
Date: 2006-04-01 16:34:47 -0500 (Sat, 01 Apr 2006)
New Revision: 9727
Added:
trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestIsPropertyInitializedExecutable.java
Modified:
trunk/Hibernate3/src/org/hibernate/Hibernate.java
trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractTransformingClassLoaderInstrumentTestCase.java
Log:
HHH-1625
ANN-301
Modified: trunk/Hibernate3/src/org/hibernate/Hibernate.java
===================================================================
--- trunk/Hibernate3/src/org/hibernate/Hibernate.java 2006-04-01 14:08:20 UTC (rev 9726)
+++ trunk/Hibernate3/src/org/hibernate/Hibernate.java 2006-04-01 21:34:47 UTC (rev 9727)
@@ -428,7 +428,7 @@
if ( FieldInterceptionHelper.isInstrumented( entity ) ) {
FieldInterceptor interceptor = FieldInterceptionHelper.extractFieldInterceptor( entity );
- return interceptor != null && interceptor.isInitialized( propertyName );
+ return interceptor == null || interceptor.isInitialized( propertyName );
}
else {
return true;
Modified: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractTransformingClassLoaderInstrumentTestCase.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractTransformingClassLoaderInstrumentTestCase.java 2006-04-01 14:08:20 UTC (rev 9726)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/AbstractTransformingClassLoaderInstrumentTestCase.java 2006-04-01 21:34:47 UTC (rev 9727)
@@ -1,12 +1,12 @@
package org.hibernate.test.instrument.runtime;
+import java.lang.reflect.InvocationTargetException;
+import java.net.URL;
+
+import org.hibernate.HibernateException;
+import org.hibernate.bytecode.BytecodeProvider;
import org.hibernate.test.AbstractClassLoaderIsolatedTestCase;
-import org.hibernate.bytecode.BytecodeProvider;
-import org.hibernate.HibernateException;
-import java.net.URL;
-import java.lang.reflect.InvocationTargetException;
-
/**
* @author Steve Ebersole
*/
@@ -57,7 +57,11 @@
executeExecutable( "org.hibernate.test.instrument.runtime.TestLazyManyToOneExecutable" );
}
+ public void testPropertyInitialized() {
+ executeExecutable( "org.hibernate.test.instrument.runtime.TestIsPropertyInitializedExecutable" );
+ }
+
// reflection code to ensure isolation into the created classloader ~~~~~~~
private static final Class[] SIG = new Class[] {};
Added: trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestIsPropertyInitializedExecutable.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestIsPropertyInitializedExecutable.java 2006-04-01 14:08:20 UTC (rev 9726)
+++ trunk/Hibernate3/test/org/hibernate/test/instrument/runtime/TestIsPropertyInitializedExecutable.java 2006-04-01 21:34:47 UTC (rev 9727)
@@ -0,0 +1,48 @@
+//$Id: $
+package org.hibernate.test.instrument.runtime;
+
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.hibernate.Hibernate;
+import org.hibernate.test.instrument.domain.Owner;
+import org.hibernate.test.instrument.domain.Document;
+import org.hibernate.test.instrument.domain.Folder;
+import junit.framework.Assert;
+
+/**
+ * @author Steve Ebersole
+ */
+public class TestIsPropertyInitializedExecutable extends AbstractExecutable {
+ public void execute() {
+ Session s = getFactory().openSession();
+ Transaction t = s.beginTransaction();
+ Owner o = new Owner();
+ Document doc = new Document();
+ Folder fol = new Folder();
+ o.setName("gavin");
+ doc.setName("Hibernate in Action");
+ doc.setSummary("blah");
+ doc.updateText("blah blah");
+ fol.setName("books");
+ doc.setOwner(o);
+ doc.setFolder(fol);
+ fol.getDocuments().add(doc);
+ Assert.assertTrue( Hibernate.isPropertyInitialized( doc, "summary" ) );
+ s.persist(o);
+ s.persist(fol);
+ t.commit();
+ s.close();
+
+ s = getFactory().openSession();
+ t = s.beginTransaction();
+ doc = (Document) s.get( Document.class, doc.getId() );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( doc, "summary" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( doc, "upperCaseName" ) );
+ Assert.assertFalse( Hibernate.isPropertyInitialized( doc, "owner" ) );
+ s.delete(doc);
+ s.delete( doc.getOwner() );
+ s.delete( doc.getFolder() );
+ t.commit();
+ s.close();
+ }
+}
|