From db5fe28b4e7cf27eb5ffaf0beb3f516a11ee78f9 Mon Sep 17 00:00:00 2001 From: Andrew Niefer Date: Tue, 18 May 2004 19:20:23 +0000 Subject: [PATCH] fix bug 62651 --- core/org.eclipse.cdt.core/search/ChangeLog | 6 ++++++ .../cdt/internal/core/search/processing/IndexingJob.java | 7 ++++--- .../cdt/internal/core/search/processing/JobManager.java | 6 ++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.core/search/ChangeLog b/core/org.eclipse.cdt.core/search/ChangeLog index 88a54545666..561b4933c35 100644 --- a/core/org.eclipse.cdt.core/search/ChangeLog +++ b/core/org.eclipse.cdt.core/search/ChangeLog @@ -1,3 +1,9 @@ +2004-05-18 Andrew Niefer + bug 62651 - indexer job hangs if project deleted from workspace + When we discard jobs, we must downtick the indexing job as well. + * search/org/eclipse/cdt/internal/core/search/processing/IndexingJob.java + * search/org/eclipse/cdt/internal/core/search/processing/JobManager.java + 2004-05-17 Bogdan Gheorghe Added matching routine to IncludePattern diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/IndexingJob.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/IndexingJob.java index 12d819a8ef7..8b565fee814 100644 --- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/IndexingJob.java +++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/IndexingJob.java @@ -58,7 +58,7 @@ public class IndexingJob extends Job { ticks++; if( ticks > maxTicks ) maxTicks = ticks; - updateRemainingCount( "" ); //$NON-NLS-1$ + updateRemainingCount( null ); } public void setTicks( int n ){ @@ -67,7 +67,7 @@ public class IndexingJob extends Job { maxTicks = ticks; updatePercentage(); - updateRemainingCount( "" ); //$NON-NLS-1$ + updateRemainingCount( null ); } public int tickDown( String str ){ @@ -87,7 +87,8 @@ public class IndexingJob extends Job { return; String taskString = Util.bind("manager.filesToIndex", Integer.toString(ticks)); //$NON-NLS-1$ - taskString += str; + if( str != null ) + taskString += str; progressMonitor.subTask( taskString ); } diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/JobManager.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/JobManager.java index 2a0f537099e..3fa4b8ccd2b 100644 --- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/JobManager.java +++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/processing/JobManager.java @@ -142,6 +142,12 @@ public abstract class JobManager implements Runnable { if (VERBOSE) JobManager.verbose("-> discarding background job - " + currentJob); //$NON-NLS-1$ currentJob.cancel(); + if( indexJob != null ){ + if( indexJob.tickDown( null ) == 0 ){ + indexJob.done( OK_STATUS ); + indexJob = null; + } + } } } jobStart = 0;