[hibernate-commits] Hibernate SVN: r19178 - in search/trunk/hibernate-search/src/main/java/org/hibernate/search: batchindexing and 1 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Apr 6 14:29:09 EDT 2010


Author: sannegrinovero
Date: 2010-04-06 14:29:09 -0400 (Tue, 06 Apr 2010)
New Revision: 19178

Modified:
   search/trunk/hibernate-search/src/main/java/org/hibernate/search/MassIndexer.java
   search/trunk/hibernate-search/src/main/java/org/hibernate/search/batchindexing/BatchCoordinator.java
   search/trunk/hibernate-search/src/main/java/org/hibernate/search/batchindexing/BatchIndexingWorkspace.java
   search/trunk/hibernate-search/src/main/java/org/hibernate/search/batchindexing/IdentifierProducer.java
   search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/MassIndexerImpl.java
Log:
HSEARCH-495 IdentifierProducer: ClassCastException

Modified: search/trunk/hibernate-search/src/main/java/org/hibernate/search/MassIndexer.java
===================================================================
--- search/trunk/hibernate-search/src/main/java/org/hibernate/search/MassIndexer.java	2010-04-06 18:17:40 UTC (rev 19177)
+++ search/trunk/hibernate-search/src/main/java/org/hibernate/search/MassIndexer.java	2010-04-06 18:29:09 UTC (rev 19178)
@@ -115,7 +115,7 @@
 	 * @param maximum
 	 * @return
 	 */
-	MassIndexer limitIndexedObjectsTo(int maximum);
+	MassIndexer limitIndexedObjectsTo(long maximum);
 
 	/**
 	 * Starts the indexing process in background (asynchronous).

Modified: search/trunk/hibernate-search/src/main/java/org/hibernate/search/batchindexing/BatchCoordinator.java
===================================================================
--- search/trunk/hibernate-search/src/main/java/org/hibernate/search/batchindexing/BatchCoordinator.java	2010-04-06 18:17:40 UTC (rev 19177)
+++ search/trunk/hibernate-search/src/main/java/org/hibernate/search/batchindexing/BatchCoordinator.java	2010-04-06 18:29:09 UTC (rev 19178)
@@ -61,7 +61,7 @@
 	private final boolean optimizeAfterPurge;
 	private final CountDownLatch endAllSignal;
 	private final MassIndexerProgressMonitor monitor;
-	private final int objectsLimit;
+	private final long objectsLimit;
 	
 	private BatchBackend backend;
 
@@ -69,7 +69,7 @@
 			SearchFactoryImplementor searchFactoryImplementor,
 			SessionFactory sessionFactory, int objectLoadingThreads,
 			int collectionLoadingThreads, CacheMode cacheMode,
-			int objectLoadingBatchSize, int objectsLimit,
+			int objectLoadingBatchSize, long objectsLimit,
 			boolean optimizeAtEnd,
 			boolean purgeAtStart, boolean optimizeAfterPurge,
 			MassIndexerProgressMonitor monitor) {

Modified: search/trunk/hibernate-search/src/main/java/org/hibernate/search/batchindexing/BatchIndexingWorkspace.java
===================================================================
--- search/trunk/hibernate-search/src/main/java/org/hibernate/search/batchindexing/BatchIndexingWorkspace.java	2010-04-06 18:17:40 UTC (rev 19177)
+++ search/trunk/hibernate-search/src/main/java/org/hibernate/search/batchindexing/BatchIndexingWorkspace.java	2010-04-06 18:29:09 UTC (rev 19178)
@@ -74,7 +74,7 @@
 
 	private final BatchBackend backend;
 	
-	private final int objectsLimit;
+	private final long objectsLimit;
 
 	public BatchIndexingWorkspace(SearchFactoryImplementor searchFactoryImplementor, SessionFactory sessionFactory,
 			Class<?> entityType,
@@ -82,7 +82,7 @@
 			CacheMode cacheMode, int objectLoadingBatchSize,
 			CountDownLatch endAllSignal,
 			MassIndexerProgressMonitor monitor, BatchBackend backend,
-			int objectsLimit) {
+			long objectsLimit) {
 		
 		this.indexedType = entityType;
 		this.searchFactory = searchFactoryImplementor;

Modified: search/trunk/hibernate-search/src/main/java/org/hibernate/search/batchindexing/IdentifierProducer.java
===================================================================
--- search/trunk/hibernate-search/src/main/java/org/hibernate/search/batchindexing/IdentifierProducer.java	2010-04-06 18:17:40 UTC (rev 19177)
+++ search/trunk/hibernate-search/src/main/java/org/hibernate/search/batchindexing/IdentifierProducer.java	2010-04-06 18:29:09 UTC (rev 19178)
@@ -60,7 +60,7 @@
 	private final Class<?> indexedType;
 	private final MassIndexerProgressMonitor monitor;
 
-	private final int objectsLimit;
+	private final long objectsLimit;
 
 	/**
 	 * @param fromIdentifierListToEntities the target queue where the produced identifiers are sent to
@@ -75,7 +75,7 @@
 			SessionFactory sessionFactory,
 			int objectLoadingBatchSize,
 			Class<?> indexedType, MassIndexerProgressMonitor monitor,
-			int objectsLimit) {
+			long objectsLimit) {
 				this.destination = fromIdentifierListToEntities;
 				this.sessionFactory = sessionFactory;
 				this.batchSize = objectLoadingBatchSize;
@@ -111,14 +111,14 @@
 	}
 
 	private void loadAllIdentifiers(final StatelessSession session) throws InterruptedException {
-		Long totalCount = (Long) session
+		Number countAsNumber = (Number) session
 			.createCriteria( indexedType )
-			.setProjection( Projections.count( "id" ) )
+			.setProjection( Projections.rowCount() )
 			.setCacheable( false )
 			.uniqueResult();
-		
-		if ( objectsLimit != 0 && objectsLimit < totalCount.intValue() ) {
-			totalCount = Long.valueOf( objectsLimit );
+		long totalCount = countAsNumber.longValue(); 
+		if ( objectsLimit != 0 && objectsLimit < totalCount ) {
+			totalCount = objectsLimit;
 		}
 		log.debug( "going to fetch {} primary keys", totalCount);
 		monitor.addToTotalCount( totalCount );
@@ -131,7 +131,7 @@
 		
 		ScrollableResults results = criteria.scroll( ScrollMode.FORWARD_ONLY );
 		ArrayList<Serializable> destinationList = new ArrayList<Serializable>( batchSize );
-		int counter = 0;
+		long counter = 0;
 		try {
 			while ( results.next() ) {
 				Serializable id = (Serializable) results.get( 0 );

Modified: search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/MassIndexerImpl.java
===================================================================
--- search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/MassIndexerImpl.java	2010-04-06 18:17:40 UTC (rev 19177)
+++ search/trunk/hibernate-search/src/main/java/org/hibernate/search/impl/MassIndexerImpl.java	2010-04-06 18:29:09 UTC (rev 19178)
@@ -61,7 +61,7 @@
 	private int collectionLoadingThreads = 4; //also responsible for loading of lazy @IndexedEmbedded collections
 //	private int writerThreads = 1; //also running the Analyzers
 	private int objectLoadingBatchSize = 10;
-	private int objectsLimit = 0; //means no limit at all
+	private long objectsLimit = 0; //means no limit at all
 	private CacheMode cacheMode = CacheMode.IGNORE;
 	private boolean optimizeAtEnd = true;
 	private boolean purgeAtStart = true;
@@ -193,7 +193,7 @@
 				monitor );
 	}
 
-	public MassIndexer limitIndexedObjectsTo(int maximum) {
+	public MassIndexer limitIndexedObjectsTo(long maximum) {
 		this.objectsLimit = maximum;
 		return this;
 	}



More information about the hibernate-commits mailing list