From b4e6f4305269f9a6fe11c4eca1f0adef5c73687a Mon Sep 17 00:00:00 2001 From: nlevitt Date: Thu, 6 Oct 2011 18:01:01 +0000 Subject: [PATCH] Unset script engine variables after scripts complete, allowing memory to be freed up sooner - see also r7252 * ScriptResource.java, ActionDirectory.java, ScriptedDecideRule.java --- .../java/org/archive/crawler/framework/ActionDirectory.java | 5 ++++- .../java/org/archive/crawler/restlet/ScriptResource.java | 6 ++++++ .../org/archive/modules/deciderules/ScriptedDecideRule.java | 4 +++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/engine/src/main/java/org/archive/crawler/framework/ActionDirectory.java b/engine/src/main/java/org/archive/crawler/framework/ActionDirectory.java index 447e8b0d..7e492a62 100644 --- a/engine/src/main/java/org/archive/crawler/framework/ActionDirectory.java +++ b/engine/src/main/java/org/archive/crawler/framework/ActionDirectory.java @@ -324,7 +324,10 @@ public class ActionDirectory implements ApplicationContextAware, Lifecycle, Runn ex = e; } catch (RuntimeException e) { ex = e; - } + } finally { + engine.put("rawOut", null); + engine.put("appCtx", null); + } // report output/exception to files paired with script in done dir rawOut.flush(); diff --git a/engine/src/main/java/org/archive/crawler/restlet/ScriptResource.java b/engine/src/main/java/org/archive/crawler/restlet/ScriptResource.java index dfb2af76..9a4bf876 100644 --- a/engine/src/main/java/org/archive/crawler/restlet/ScriptResource.java +++ b/engine/src/main/java/org/archive/crawler/restlet/ScriptResource.java @@ -112,6 +112,12 @@ public class ScriptResource extends JobRelatedResource { rawOutput = rawString.toString(); htmlOut.flush(); htmlOutput = htmlString.toString(); + + eng.put("rawOut", null); + eng.put("htmlOut", null); + eng.put("job", null); + eng.put("appCtx", null); + eng.put("scriptResource", null); } //TODO: log script, results somewhere; job log INFO? diff --git a/modules/src/main/java/org/archive/modules/deciderules/ScriptedDecideRule.java b/modules/src/main/java/org/archive/modules/deciderules/ScriptedDecideRule.java index 0b90bb23..290f881c 100644 --- a/modules/src/main/java/org/archive/modules/deciderules/ScriptedDecideRule.java +++ b/modules/src/main/java/org/archive/modules/deciderules/ScriptedDecideRule.java @@ -132,7 +132,9 @@ implements ApplicationContextAware, InitializingBean { } catch (ScriptException e) { logger.log(Level.WARNING,e.getMessage(),e); return DecideResult.NONE; - } + } finally { + engine.put("object", null); + } } }