[hibernate-commits] Hibernate SVN: r13946 - in search/trunk/src: test/org/hibernate/search/test/session and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Aug 21 14:42:37 EDT 2007


Author: epbernard
Date: 2007-08-21 14:42:37 -0400 (Tue, 21 Aug 2007)
New Revision: 13946

Modified:
   search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java
   search/trunk/src/test/org/hibernate/search/test/session/MassIndexTest.java
Log:
HSEARCH-109 lazy indexed object use the wrong class name

Modified: search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java	2007-08-21 18:01:54 UTC (rev 13945)
+++ search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java	2007-08-21 18:42:37 UTC (rev 13946)
@@ -504,7 +504,7 @@
 
 	public Document getDocument(T instance, Serializable id) {
 		Document doc = new Document();
-		XClass instanceClass = reflectionManager.toXClass( instance.getClass() );
+		XClass instanceClass = reflectionManager.toXClass( Hibernate.getClass( instance ) );
 		if ( rootPropertiesMetadata.boost != null ) {
 			doc.setBoost( rootPropertiesMetadata.boost );
 		}
@@ -590,6 +590,7 @@
 	private Object unproxy(Object value) {
 		//FIXME this service should be part of Core?
 		if ( value instanceof HibernateProxy ) {
+			// .getImplementation() initializes the data by side effect
 			value = ( (HibernateProxy) value ).getHibernateLazyInitializer()
 					.getImplementation();
 		}

Modified: search/trunk/src/test/org/hibernate/search/test/session/MassIndexTest.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/session/MassIndexTest.java	2007-08-21 18:01:54 UTC (rev 13945)
+++ search/trunk/src/test/org/hibernate/search/test/session/MassIndexTest.java	2007-08-21 18:42:37 UTC (rev 13946)
@@ -2,6 +2,7 @@
 package org.hibernate.search.test.session;
 
 import java.util.List;
+import java.util.Iterator;
 
 import org.apache.lucene.analysis.StopAnalyzer;
 import org.apache.lucene.index.Term;
@@ -150,6 +151,22 @@
 		luceneQuery = new TermQuery( new Term( "categorie.nom", "livre" ) );
 		result = session.createFullTextQuery( luceneQuery, Entite.class ).list();
 		assertEquals( "test lazy loading and indexing", 1, result.size() );
+		s.close();
+
+		s = openSession();
+		Iterator it = s.createQuery( "from Entite where id = :id").setParameter( "id", ent.getId() ).iterate();
+		session = Search.createFullTextSession( s );
+		while ( it.hasNext() ) {
+			ent = (Entite) it.next();
+			session.index( ent );
+		}
+		s.close();
+
+		s = openSession();
+		session = Search.createFullTextSession( s );
+		luceneQuery = new TermQuery( new Term( "categorie.nom", "livre" ) );
+		result = session.createFullTextQuery( luceneQuery, Entite.class ).list();
+		assertEquals( "test lazy loading and indexing", 1, result.size() );
 		ent = (Entite) result.get( 0 );
 		cat = ent.getCategorie();
 		ent.setCategorie( null );




More information about the hibernate-commits mailing list