knguyen 2005/05/20 13:45:50 CEST
Modified files: (Branch: JAHIA-4-1-BRANCH)
src/java/org/jahia/services/search JahiaSearchBaseService.java
JahiaSearchService.java
ScheduledSiteIndexationJob.java
Log:
- fix Dav file access and null pointer when jParams.getRealRequest() is null.
- limit the load of document to index to 300 max in queue to avoid memory
peak.
Revision Changes Path
1.42.2.15.2.6 +17 -1
jahia/src/java/org/jahia/services/search/JahiaSearchBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/services/search/JahiaSearchBaseService.java.diff?r1=1.42.2.15.2.5&r2=1.42.2.15.2.6&f=h
1.10.4.2.2.3 +8 -0
jahia/src/java/org/jahia/services/search/JahiaSearchService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/services/search/JahiaSearchService.java.diff?r1=1.10.4.2.2.2&r2=1.10.4.2.2.3&f=h
1.1.2.3 +6 -0
jahia/src/java/org/jahia/services/search/ScheduledSiteIndexationJob.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/services/search/ScheduledSiteIndexationJob.java.diff?r1=1.1.2.2&r2=1.1.2.3&f=h
Index: JahiaSearchBaseService.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/services/search/Attic/JahiaSearchBaseService.java,v
retrieving revision 1.42.2.15.2.5
retrieving revision 1.42.2.15.2.6
diff -u -r1.42.2.15.2.5 -r1.42.2.15.2.6
--- JahiaSearchBaseService.java 20 May 2005 09:32:17 -0000
1.42.2.15.2.5
+++ JahiaSearchBaseService.java 20 May 2005 11:45:50 -0000
1.42.2.15.2.6
@@ -304,6 +304,14 @@
mIsServiceInitialized = false;
}
+ public int getNbDocumentsInQueue(){
+ try {
+ return this.indexOrders.size();
+ } catch ( Throwable t) {
+ return -1;
+ }
+ }
+
//--------------------------------------------------------------------------
/**
* index afield
@@ -964,6 +972,7 @@
long indexingStartTime = System.currentTimeMillis();
int indexOrderCount = v.size ();
+ int docCount = 0;
while (v.size() > 0) {
JahiaIndexableDocument nextObject = null;
@@ -973,6 +982,11 @@
v.remove(0);
}
+ if ( docCount>400 ){ // limit before moving to File system
+ closeCachedWriter(siteId);
+ docCount = 0;
+ }
+
// okay now we have the next added/removed field, we process
it!
if (nextObject != null) {
@@ -998,15 +1012,17 @@
} catch ( Throwable t ){
logger.debug(t);
}
+ docCount = 0;
}
if ( writer != null ){
backgroundAddObjectToSearchEngine(nextObject,
writer, null);
+ docCount++;
}
}
else {
// close cached writer first
closeCachedWriter(siteId);
-
+ docCount = 0;
backgroundRemoveObjectFromSearchEngine(nextObject,reader);
}
this.indexOrdersCache.remove(getCacheKey(nextObject));
Index: JahiaSearchService.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/services/search/Attic/JahiaSearchService.java,v
retrieving revision 1.10.4.2.2.2
retrieving revision 1.10.4.2.2.3
diff -u -r1.10.4.2.2.2 -r1.10.4.2.2.3
--- JahiaSearchService.java 18 May 2005 13:54:58 -0000 1.10.4.2.2.2
+++ JahiaSearchService.java 20 May 2005 11:45:50 -0000 1.10.4.2.2.3
@@ -237,4 +237,12 @@
public abstract FileExtractor getFileExtractor(String contentType)
throws JahiaException;
+
+ /**
+ * Returns the number of pending documents in the indexing queue
+ * -1 on error
+ * @return
+ */
+ public abstract int getNbDocumentsInQueue();
+
}
Index: ScheduledSiteIndexationJob.java
===================================================================
RCS file:
/home/cvs/repository/jahia/src/java/org/jahia/services/search/Attic/ScheduledSiteIndexationJob.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- ScheduledSiteIndexationJob.java 20 May 2005 09:32:17 -0000 1.1.2.2
+++ ScheduledSiteIndexationJob.java 20 May 2005 11:45:50 -0000 1.1.2.3
@@ -77,6 +77,12 @@
int size = listFieldID.size();
for (int i = 0; i < size; i++) {
int fieldID = ( (Integer) listFieldID.get(i)).intValue();
+ while ( sReg.getJahiaSearchService().getNbDocumentsInQueue()>300
) {
+ try {
+ Thread.sleep(2000);
+ } catch ( java.lang.InterruptedException ie ){
+ }
+ }
try {
sReg.getJahiaSearchService().indexField(fieldID,false,jParams);
}