Bug 553665: [Unit Test] Active watch expressions disable breakpoints

  For a temporary context we removed the link to the debugger, but did
  not restore it afterwards.

Change-Id: If755b94beeb707d11b47bbdd2763187996099821
diff --git a/plugins/org.eclipse.ease.lang.javascript.rhino/src/org/eclipse/ease/lang/javascript/rhino/debugger/RhinoDebugger.java b/plugins/org.eclipse.ease.lang.javascript.rhino/src/org/eclipse/ease/lang/javascript/rhino/debugger/RhinoDebugger.java
index e85afb6..cae7ce5 100644
--- a/plugins/org.eclipse.ease.lang.javascript.rhino/src/org/eclipse/ease/lang/javascript/rhino/debugger/RhinoDebugger.java
+++ b/plugins/org.eclipse.ease.lang.javascript.rhino/src/org/eclipse/ease/lang/javascript/rhino/debugger/RhinoDebugger.java
@@ -165,15 +165,29 @@
 
 		@Override
 		public Object inject(String expression) throws Throwable {
+			Context context = null;
+			Debugger debugger = null;
+			Object debuggerContextData = null;
+
 			try {
 				final StringReader reader = new StringReader(expression);
-				final Context context = RhinoScriptEngine.getContext();
+				context = RhinoScriptEngine.getContext();
+
+				// backup current debugger settings
+				debugger = context.getDebugger();
+				debuggerContextData = context.getDebuggerContextData();
+
 				context.setDebugger(null, null);
 				return context.evaluateReader(fScope, reader, null, 1, null);
 
 			} catch (final Throwable e) {
 				// FIXME: move to script engine to get correct error handling
 				throw e;
+
+			} finally {
+				// restore debugger on context
+				if (context != null)
+					context.setDebugger(debugger, debuggerContextData);
 			}
 		}
 	}
diff --git a/plugins/org.eclipse.ease/src/org/eclipse/ease/debugging/events/model/EvaluateExpressionRequest.java b/plugins/org.eclipse.ease/src/org/eclipse/ease/debugging/events/model/EvaluateExpressionRequest.java
index 5ac4da0..2b78bd3 100644
--- a/plugins/org.eclipse.ease/src/org/eclipse/ease/debugging/events/model/EvaluateExpressionRequest.java
+++ b/plugins/org.eclipse.ease/src/org/eclipse/ease/debugging/events/model/EvaluateExpressionRequest.java
@@ -38,4 +38,9 @@
 	public IWatchExpressionListener getListener() {
 		return fListener;
 	}
+
+	@Override
+	public String toString() {
+		return super.toString() + " " + getExpression();
+	}
 }