azkaban-memoizeit

Details

diff --git a/src/java/azkaban/execapp/event/LocalFlowWatcher.java b/src/java/azkaban/execapp/event/LocalFlowWatcher.java
index b51f17b..4cfd2bb 100644
--- a/src/java/azkaban/execapp/event/LocalFlowWatcher.java
+++ b/src/java/azkaban/execapp/event/LocalFlowWatcher.java
@@ -1,5 +1,7 @@
 package azkaban.execapp.event;
 
+import com.sun.org.apache.regexp.internal.recompile;
+
 import azkaban.execapp.FlowRunner;
 import azkaban.execapp.JobRunner;
 import azkaban.executor.ExecutableNode;
@@ -7,6 +9,7 @@ import azkaban.executor.ExecutableNode;
 public class LocalFlowWatcher extends FlowWatcher {
 	private LocalFlowWatcherListener watcherListener;
 	private FlowRunner runner;
+	private boolean isShutdown = false;
 	
 	public LocalFlowWatcher(FlowRunner runner) {
 		super(runner.getExecutableFlow().getExecutionId());
@@ -20,6 +23,11 @@ public class LocalFlowWatcher extends FlowWatcher {
 	@Override
 	public void stopWatcher() {
 		// Just freeing stuff
+		if(isShutdown) {
+			return;
+		}
+		
+		isShutdown = true;
 		runner.removeListener(watcherListener);
 		runner = null;
 		
diff --git a/src/java/azkaban/execapp/event/RemoteFlowWatcher.java b/src/java/azkaban/execapp/event/RemoteFlowWatcher.java
index 398a364..ec60025 100644
--- a/src/java/azkaban/execapp/event/RemoteFlowWatcher.java
+++ b/src/java/azkaban/execapp/event/RemoteFlowWatcher.java
@@ -95,6 +95,9 @@ public class RemoteFlowWatcher extends FlowWatcher {
 
 	@Override
 	public synchronized void stopWatcher() {
+		if(isShutdown) {
+			return;
+		}
 		isShutdown = true;
 		if (thread != null) {
 			thread.interrupt();