You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/03/06 17:23:17 UTC
[09/50] incubator-taverna-common-activities git commit: T2-1135 use
weak references to the facades to avoid facade memory leak.
T2-1135 use weak references to the facades to avoid facade memory leak.
git-svn-id: http://taverna.googlecode.com/svn/taverna/engine/net.sf.taverna.t2.activities/trunk/dependency-activity@9653 bf327186-88b3-11dd-a302-d386e5130c1c
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/commit/73a68072
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/tree/73a68072
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/diff/73a68072
Branch: refs/heads/master
Commit: 73a6807242ea3d9b9208dc6168f337ce25a10b12
Parents: 8b4e5bc
Author: stian@mygrid.org.uk <st...@bf327186-88b3-11dd-a302-d386e5130c1c>
Authored: Mon Feb 1 16:03:40 2010 +0000
Committer: stian@mygrid.org.uk <st...@bf327186-88b3-11dd-a302-d386e5130c1c>
Committed: Mon Feb 1 16:03:40 2010 +0000
----------------------------------------------------------------------
.../AbstractAsynchronousDependencyActivity.java | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/73a68072/src/main/java/net/sf/taverna/t2/activities/dependencyactivity/AbstractAsynchronousDependencyActivity.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/dependencyactivity/AbstractAsynchronousDependencyActivity.java b/src/main/java/net/sf/taverna/t2/activities/dependencyactivity/AbstractAsynchronousDependencyActivity.java
index 1e75e13..37a9503 100644
--- a/src/main/java/net/sf/taverna/t2/activities/dependencyactivity/AbstractAsynchronousDependencyActivity.java
+++ b/src/main/java/net/sf/taverna/t2/activities/dependencyactivity/AbstractAsynchronousDependencyActivity.java
@@ -22,6 +22,7 @@ package net.sf.taverna.t2.activities.dependencyactivity;
import java.io.File;
import java.io.FilenameFilter;
+import java.lang.ref.WeakReference;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Arrays;
@@ -29,8 +30,6 @@ import java.util.HashSet;
import java.util.Set;
import java.util.WeakHashMap;
-import org.apache.log4j.Logger;
-
import net.sf.taverna.raven.appconfig.ApplicationRuntime;
import net.sf.taverna.raven.prelauncher.BootstrapClassLoader;
import net.sf.taverna.raven.prelauncher.PreLauncher;
@@ -45,6 +44,8 @@ import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
import net.sf.taverna.t2.workflowmodel.processor.activity.NestedDataflow;
import net.sf.taverna.t2.workflowmodel.utils.Tools;
+import org.apache.log4j.Logger;
+
/**
* A parent abstract class for activities that require dependency management, such as
* API Consumer and Beanshell. Defines dependencies on local JAR files
@@ -239,10 +240,15 @@ public abstract class AbstractAsynchronousDependencyActivity<ConfigType> extends
ClassLoaderSharing classLoaderSharing = configurationBean.getClassLoaderSharing();
// Get the WorkflowInstanceFacade which contains the current workflow
- WorkflowInstanceFacade wfFacade = WorkflowInstanceFacade.workflowRunFacades.get(workflowRunID);
+ WeakReference<WorkflowInstanceFacade> wfFacadeRef = WorkflowInstanceFacade.workflowRunFacades.get(workflowRunID);
+ WorkflowInstanceFacade wfFacade = null;
+ if (wfFacadeRef != null) {
+ wfFacade = wfFacadeRef.get();
+ }
Dataflow wf = null;
- if (wfFacade != null)
- wf = WorkflowInstanceFacade.workflowRunFacades.get(workflowRunID).getDataflow();
+ if (wfFacade != null) {
+ wf = wfFacade.getDataflow();
+ }
// Files of dependencies for all activities in the workflow that share the classloading policy
HashSet<File> dependencies = new HashSet<File>();