You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2010/06/03 23:34:00 UTC
svn commit: r951176 - in
/incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs:
JobManager.java Jobs.java
Author: kwright
Date: Thu Jun 3 21:33:59 2010
New Revision: 951176
URL: http://svn.apache.org/viewvc?rev=951176&view=rev
Log:
Fix another derby issue having to do with carrydown data; also a problem with document state in the document status report.
Modified:
incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/JobManager.java
incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/Jobs.java
Modified: incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/JobManager.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/JobManager.java?rev=951176&r1=951175&r2=951176&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/JobManager.java (original)
+++ incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/JobManager.java Thu Jun 3 21:33:59 2010
@@ -1667,7 +1667,7 @@ public class JobManager implements IJobM
while (!isDone && currentPriority <= 10)
{
- if (jobs.countPriorityJobs(currentPriority) > 0)
+ if (jobs.hasPriorityJobs(currentPriority))
{
Long currentPriorityValue = new Long((long)currentPriority);
fetchAndProcessDocuments(answers,currentTimeValue,currentPriorityValue,vList,connections);
@@ -2228,13 +2228,13 @@ public class JobManager implements IJobM
{
// The query here mirrors the carrydown.restoreRecords() delete query! However, it also fetches enough information to build a DocumentDescription
// object for return, and so a join is necessary against the jobqueue table.
- String query = "SELECT DISTINCT t0."+jobQueue.idField+",t0."+jobQueue.docHashField+",t0."+jobQueue.docIDField+" FROM "+
- jobQueue.getTableName()+" t0,"+carryDown.getTableName()+
+ //???
+ String query = "SELECT t0."+jobQueue.idField+",t0."+jobQueue.docHashField+",t0."+jobQueue.docIDField+" FROM "+
+ jobQueue.getTableName()+" t0 WHERE EXISTS(SELECT 'x' FROM "+carryDown.getTableName()+
" t1 WHERE t1."+carryDown.parentIDHashField+" IN ("+queryPart+") AND t1."+carryDown.childIDHashField+"=t0."+jobQueue.docHashField+
- " AND t0."+jobQueue.jobIDField+"=? AND t1."+carryDown.jobIDField+"=?";
+ " AND t0."+jobQueue.jobIDField+"=? AND t1."+carryDown.jobIDField+"=?)";
list.add(jobID);
list.add(jobID);
-
IResultSet set = database.performQuery(query,list,null,null);
int i = 0;
while (i < set.getRowCount())
@@ -3597,10 +3597,11 @@ public class JobManager implements IJobM
{
// The query here mirrors the carrydown.restoreRecords() delete query! However, it also fetches enough information to build a DocumentDescription
// object for return, and so a join is necessary against the jobqueue table.
- String query = "SELECT DISTINCT t0."+jobQueue.idField+",t0."+jobQueue.docHashField+",t0."+jobQueue.docIDField+" FROM "+
- jobQueue.getTableName()+" t0,"+carryDown.getTableName()+
+ //???
+ String query = "SELECT t0."+jobQueue.idField+",t0."+jobQueue.docHashField+",t0."+jobQueue.docIDField+" FROM "+
+ jobQueue.getTableName()+" t0 WHERE EXISTS(SELECT 'x' FROM "+carryDown.getTableName()+
" t1 WHERE "+carryDown.parentIDHashField+" IN ("+queryPart+") AND t1."+carryDown.childIDHashField+"=t0."+jobQueue.docHashField+
- " AND t0."+jobQueue.jobIDField+"=? AND t1."+jobQueue.jobIDField+"=? AND t1."+carryDown.newField+"=?";
+ " AND t0."+jobQueue.jobIDField+"=? AND t1."+jobQueue.jobIDField+"=? AND t1."+carryDown.newField+"=?)";
list.add(jobID);
list.add(jobID);
list.add(carryDown.statusToString(carryDown.ISNEW_BASE));
@@ -5524,14 +5525,14 @@ public class JobManager implements IJobM
null,null,null);
IResultSet set2 = database.performQuery("SELECT "+
- JobQueue.jobIDField+",COUNT("+JobQueue.docHashField+") AS doccount FROM "+
+ JobQueue.jobIDField+",CAST(COUNT("+JobQueue.docHashField+") AS BIGINT) AS doccount FROM "+
jobQueue.getTableName()+" t1"+
((whereClause==null)?"":(" WHERE EXISTS(SELECT 'x' FROM "+
jobs.getTableName()+" t0 WHERE t0."+Jobs.idField+"=t1."+JobQueue.jobIDField+" AND "+whereClause+")"))+
" GROUP BY "+JobQueue.jobIDField,null,null,null);
IResultSet set3 = database.performQuery("SELECT "+
- JobQueue.jobIDField+",COUNT("+JobQueue.docHashField+") AS doccount FROM "+
+ JobQueue.jobIDField+",CAST(COUNT("+JobQueue.docHashField+") AS BIGINT) AS doccount FROM "+
jobQueue.getTableName()+" t1 WHERE "+
JobQueue.statusField+" IN ("+
database.quoteSQLString(JobQueue.statusToString(JobQueue.STATUS_ACTIVE))+","+
@@ -5545,7 +5546,7 @@ public class JobManager implements IJobM
" GROUP BY "+JobQueue.jobIDField,null,null,null);
IResultSet set4 = database.performQuery("SELECT "+
- JobQueue.jobIDField+",COUNT("+JobQueue.docHashField+") AS doccount FROM "+
+ JobQueue.jobIDField+",CAST(COUNT("+JobQueue.docHashField+") AS BIGINT) AS doccount FROM "+
jobQueue.getTableName()+" t1 WHERE "+
JobQueue.statusField+" IN ("+
database.quoteSQLString(JobQueue.statusToString(JobQueue.STATUS_COMPLETE))+","+
@@ -5706,7 +5707,8 @@ public class JobManager implements IJobM
.append(" WHEN ").append("t0.").append(jobQueue.statusField).append("=").append(database.quoteSQLString(jobQueue.statusToString(jobQueue.STATUS_COMPLETE))).append(" THEN 'Processed'")
.append(" WHEN ").append("t0.").append(jobQueue.statusField).append("=").append(database.quoteSQLString(jobQueue.statusToString(jobQueue.STATUS_PURGATORY))).append(" THEN 'Processed'")
.append(" WHEN ").append("t0.").append(jobQueue.statusField).append("=").append(database.quoteSQLString(jobQueue.statusToString(jobQueue.STATUS_BEINGDELETED))).append(" THEN 'Being removed'")
- .append("END AS state,")
+ .append(" ELSE 'Unknown'")
+ .append(" END AS state,")
.append("CASE")
.append(" WHEN ")
.append("(").append("t0.").append(jobQueue.statusField).append("=").append(database.quoteSQLString(jobQueue.statusToString(jobQueue.STATUS_COMPLETE)))
@@ -5765,12 +5767,14 @@ public class JobManager implements IJobM
.append(")")
.append(" AND t0.").append(jobQueue.checkActionField).append("=").append(database.quoteSQLString(jobQueue.actionToString(jobQueue.ACTION_REMOVE)))
.append(" THEN 'Expiring'")
- .append("END AS status,")
+ .append(" ELSE 'Unknown'")
+ .append(" END AS status,")
.append("t0.").append(jobQueue.checkTimeField).append(" AS scheduled,")
.append("CASE")
.append(" WHEN ").append("(t0.").append(jobQueue.checkActionField).append(" IS NULL OR t0.").append(jobQueue.checkActionField).append("=").append(database.quoteSQLString(jobQueue.actionToString(jobQueue.ACTION_RESCAN))).append(") THEN 'Process'")
.append(" WHEN ").append("t0.").append(jobQueue.checkActionField).append("=").append(database.quoteSQLString(jobQueue.actionToString(jobQueue.ACTION_REMOVE))).append(" THEN 'Expire'")
- .append("END AS action,")
+ .append(" ELSE 'Unknown'")
+ .append(" END AS action,")
.append("t0.").append(jobQueue.failCountField).append(" AS retrycount,")
.append("t0.").append(jobQueue.failTimeField).append(" AS retrylimit")
.append(" FROM ").append(jobQueue.getTableName()).append(" t0,").append(jobs.getTableName()).append(" t1 WHERE ")
Modified: incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/Jobs.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/Jobs.java?rev=951176&r1=951175&r2=951176&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/Jobs.java (original)
+++ incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/Jobs.java Thu Jun 3 21:33:59 2010
@@ -480,17 +480,16 @@ public class Jobs extends org.apache.lcf
return rval;
}
- /** Count the number of jobs that have a specified priority level */
- public int countPriorityJobs(int priority)
+ /** Are there any jobs that have a specified priority level */
+ public boolean hasPriorityJobs(int priority)
throws LCFException
{
- IResultSet set = performQuery("SELECT COUNT(*) AS countvar FROM "+getTableName()+" WHERE "+priorityField+"="+Integer.toString(priority)+
+ IResultSet set = performQuery("SELECT * FROM "+getTableName()+" WHERE "+priorityField+"="+Integer.toString(priority)+
" AND "+
statusField+" IN ("+
quoteSQLString(statusToString(STATUS_ACTIVE))+","+
- quoteSQLString(statusToString(STATUS_ACTIVESEEDING))+")",null,null,null);
- IResultRow row = set.getRow(0);
- return (int)((Long)row.getValue("countvar")).longValue();
+ quoteSQLString(statusToString(STATUS_ACTIVESEEDING))+") "+constructOffsetLimitClause(0,1),null,null,null,1);
+ return set.getRowCount() > 0;
}
/** Create a job.