From e174bb163a20c46742543b8a31a8a50106e5dfd8 Mon Sep 17 00:00:00 2001 From: Tom Morris Date: Sun, 28 Aug 2011 22:00:02 +0000 Subject: [PATCH] Issue 440 - Don't purge from memory those projects with pending operations git-svn-id: http://google-refine.googlecode.com/svn/trunk@2222 7d457c2a-affb-35e4-300a-418c747d4874 --- main/src/com/google/refine/ProjectManager.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/main/src/com/google/refine/ProjectManager.java b/main/src/com/google/refine/ProjectManager.java index 81433da24..5bdd21849 100644 --- a/main/src/com/google/refine/ProjectManager.java +++ b/main/src/com/google/refine/ProjectManager.java @@ -73,9 +73,9 @@ public abstract class ProjectManager { transient protected InterProjectModel _interProjectModel = new InterProjectModel(); /** - * Flags + * Flag for heavy operations like creating or importing projects. Workspace saves are skipped while it's set. */ - transient protected int _busy = 0; // heavy operations like creating or importing projects are going on + transient protected int _busy = 0; /** * While each project's metadata is loaded completely at start-up, each project's raw data @@ -255,7 +255,9 @@ public abstract class ProjectManager { records.add(new SaveRecord(project, msecsOverdue)); - } else if (startTimeOfSave.getTime() - project.getLastSave().getTime() > s_projectFlushDelay) { + } else if (!project.getProcessManager().hasPending() + && startTimeOfSave.getTime() - project.getLastSave().getTime() > s_projectFlushDelay) { + /* * It's been a while since the project was last saved and it hasn't been * modified. We can safely remove it from the cache to save some memory. @@ -435,7 +437,8 @@ public abstract class ProjectManager { //--------------Miscellaneous----------- /** - * Sets the flag for long running operations + * Sets the flag for long running operations. This will prevent + * workspace saves from happening while it's set. * @param busy */ public void setBusy(boolean busy) {