You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ft...@apache.org on 2014/04/30 11:59:03 UTC

[14/15] git commit: [flex-sdk] [refs/heads/FDBWorkers] - FLEX-34291: Merge the donated FDB with the current one.

FLEX-34291: Merge the donated FDB with the current one.

- Re-applied previous fixes
- Kept the legacy code to evaluate expressions, the new code based on Falcon classes will be created in the Falcon repository.


Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/379cb609
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/379cb609
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/379cb609

Branch: refs/heads/FDBWorkers
Commit: 379cb6098f2ffeb33b593a3ff5bacbc4856b65cf
Parents: dd6ef7e
Author: Fr�d�ric THMOAS <ft...@apache.org>
Authored: Wed Apr 30 10:41:54 2014 +0100
Committer: Fr�d�ric THMOAS <ft...@apache.org>
Committed: Wed Apr 30 10:41:54 2014 +0100

----------------------------------------------------------------------
 .../debugger/DefaultDebuggerCallbacks.java      |    55 +-
 .../src/java/flash/tools/debugger/Frame.java    |    50 +-
 .../tools/debugger/IDebuggerCallbacks.java      |    48 +-
 .../java/flash/tools/debugger/ILauncher.java    |    49 +
 .../src/java/flash/tools/debugger/Isolate.java  |    40 +
 .../flash/tools/debugger/IsolateController.java |   184 +
 .../flash/tools/debugger/IsolateSession.java    |   177 +
 .../src/java/flash/tools/debugger/Location.java |    31 +-
 .../src/java/flash/tools/debugger/Session.java  |    59 +-
 .../src/java/flash/tools/debugger/SwfInfo.java  |     5 +
 .../src/java/flash/tools/debugger/Value.java    |    56 +-
 .../src/java/flash/tools/debugger/Variable.java |    49 +-
 .../src/java/flash/tools/debugger/Watch.java    |    31 +-
 .../flash/tools/debugger/concrete/DIsolate.java |    49 +
 .../tools/debugger/concrete/DLocation.java      |    36 +-
 .../flash/tools/debugger/concrete/DManager.java |  3321 +++--
 .../flash/tools/debugger/concrete/DMessage.java |    93 +-
 .../tools/debugger/concrete/DMessageCache.java  |    26 +-
 .../debugger/concrete/DMessageCounter.java      |   133 +-
 .../flash/tools/debugger/concrete/DModule.java  |    37 +-
 .../tools/debugger/concrete/DProtocol.java      |    40 +-
 .../debugger/concrete/DProtocolNotifierIF.java  |    26 +-
 .../tools/debugger/concrete/DStackContext.java  |    48 +-
 .../tools/debugger/concrete/DSuspendInfo.java   |    26 +-
 .../flash/tools/debugger/concrete/DSwfInfo.java |    42 +-
 .../flash/tools/debugger/concrete/DValue.java   |    92 +-
 .../tools/debugger/concrete/DVariable.java      |    59 +-
 .../flash/tools/debugger/concrete/DWatch.java   |    34 +-
 .../debugger/concrete/IsolatePlayerSession.java |   221 +
 .../tools/debugger/concrete/PlayerSession.java  |  1262 +-
 .../concrete/PlayerSessionIsolateStatus.java    |    25 +
 .../flash/tools/debugger/events/BreakEvent.java |    37 +-
 .../debugger/events/ConsoleErrorFault.java      |    29 +-
 .../debugger/events/DivideByZeroFault.java      |    31 +-
 .../tools/debugger/events/ExceptionFault.java   |    31 +-
 .../flash/tools/debugger/events/FaultEvent.java |    43 +-
 .../debugger/events/InvalidTargetFault.java     |    29 +-
 .../tools/debugger/events/InvalidURLFault.java  |    29 +-
 .../tools/debugger/events/InvalidWithFault.java |    31 +-
 .../debugger/events/IsolateCreateEvent.java     |    38 +
 .../tools/debugger/events/IsolateExitEvent.java |    38 +
 .../tools/debugger/events/ProtoLimitFault.java  |    31 +-
 .../debugger/events/RecursionLimitFault.java    |    31 +-
 .../debugger/events/ScriptTimeoutFault.java     |    31 +-
 .../debugger/events/StackUnderFlowFault.java    |    31 +-
 .../tools/debugger/expression/Context.java      |     5 +
 .../debugger/expression/DebuggerEvaluator.java  |    10 +-
 .../flash/tools/debugger/expression/ECMA.java   |   119 +-
 .../debugger/threadsafe/ThreadSafeFrame.java    |    36 +-
 .../debugger/threadsafe/ThreadSafeIsolate.java  |    62 +
 .../threadsafe/ThreadSafeIsolateSession.java    |   285 +
 .../debugger/threadsafe/ThreadSafeLocation.java |    33 +-
 .../debugger/threadsafe/ThreadSafeSession.java  |    96 +-
 .../debugger/threadsafe/ThreadSafeSwfInfo.java  |    33 +-
 .../debugger/threadsafe/ThreadSafeValue.java    |    35 +-
 .../debugger/threadsafe/ThreadSafeVariable.java |    32 +-
 .../debugger/threadsafe/ThreadSafeWatch.java    |    33 +-
 .../java/flex/tools/debugger/cli/DebugCLI.java  | 12666 ++++++++---------
 .../flex/tools/debugger/cli/DisplayAction.java  |    34 +-
 .../tools/debugger/cli/ExpressionCache.java     |    34 +-
 .../tools/debugger/cli/ExpressionContext.java   |    87 +-
 .../flex/tools/debugger/cli/Extensions.java     |    66 +-
 .../flex/tools/debugger/cli/FaultActions.java   |   139 +-
 .../flex/tools/debugger/cli/FileInfoCache.java  |   137 +-
 .../flex/tools/debugger/cli/VariableFacade.java |    43 +-
 .../flex/tools/debugger/cli/fdb_da.properties   |    35 +-
 .../flex/tools/debugger/cli/fdb_de.properties   |    37 +-
 .../flex/tools/debugger/cli/fdb_en.properties   |    45 +-
 .../flex/tools/debugger/cli/fdb_es.properties   |    35 +-
 .../flex/tools/debugger/cli/fdb_fi.properties   |    35 +-
 .../flex/tools/debugger/cli/fdb_fr.properties   |    45 +-
 .../flex/tools/debugger/cli/fdb_it.properties   |    35 +-
 .../flex/tools/debugger/cli/fdb_ja.properties   |    45 +-
 .../flex/tools/debugger/cli/fdb_ko.properties   |    35 +-
 .../flex/tools/debugger/cli/fdb_nb.properties   |    35 +-
 .../flex/tools/debugger/cli/fdb_nl.properties   |    35 +-
 .../flex/tools/debugger/cli/fdb_pt.properties   |    35 +-
 .../flex/tools/debugger/cli/fdb_ru.properties   |    35 +-
 .../flex/tools/debugger/cli/fdb_sv.properties   |    35 +-
 .../tools/debugger/cli/fdb_zh_CN.properties     |    45 +-
 .../tools/debugger/cli/fdb_zh_TW.properties     |    35 +-
 .../java/flex/tools/debugger/cli/fdbhelp_br.txt |   805 +-
 .../java/flex/tools/debugger/cli/fdbhelp_de.txt |   859 +-
 .../java/flex/tools/debugger/cli/fdbhelp_dk.txt |   794 +-
 .../java/flex/tools/debugger/cli/fdbhelp_en.txt |    19 +-
 .../java/flex/tools/debugger/cli/fdbhelp_es.txt |   807 +-
 .../java/flex/tools/debugger/cli/fdbhelp_fi.txt |   803 +-
 .../java/flex/tools/debugger/cli/fdbhelp_fr.txt |  1397 +-
 .../java/flex/tools/debugger/cli/fdbhelp_it.txt |   858 +-
 .../java/flex/tools/debugger/cli/fdbhelp_ja.txt |    67 +-
 .../flex/tools/debugger/cli/fdbhelp_ko_kr.txt   |   810 +-
 .../java/flex/tools/debugger/cli/fdbhelp_nl.txt |  2610 ++--
 .../java/flex/tools/debugger/cli/fdbhelp_no.txt |   790 +-
 .../java/flex/tools/debugger/cli/fdbhelp_ru.txt |   808 +-
 .../java/flex/tools/debugger/cli/fdbhelp_se.txt |   792 +-
 .../flex/tools/debugger/cli/fdbhelp_zh_cn.txt   |   785 +-
 .../flex/tools/debugger/cli/fdbhelp_zh_tw.txt   |   738 +-
 97 files changed, 13198 insertions(+), 21995 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/DefaultDebuggerCallbacks.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/DefaultDebuggerCallbacks.java b/modules/debugger/src/java/flash/tools/debugger/DefaultDebuggerCallbacks.java
index 87f3136..d94ae46 100644
--- a/modules/debugger/src/java/flash/tools/debugger/DefaultDebuggerCallbacks.java
+++ b/modules/debugger/src/java/flash/tools/debugger/DefaultDebuggerCallbacks.java
@@ -1,20 +1,18 @@
 /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package flash.tools.debugger;
@@ -316,13 +314,36 @@ public class DefaultDebuggerCallbacks implements IDebuggerCallbacks
 	{
 		return Runtime.getRuntime().exec(cmd);
 	}
-
+	
+	@Override
+	public Process launchDebugTarget(String[] cmd, ILauncher launcher) throws IOException {
+		return launcher.launch(cmd);
+	}
+	
 	/*
 	 * @see flash.tools.debugger.IDebuggerCallbacks#terminateDebugTarget(java.lang.Process)
 	 */
 	public void terminateDebugTarget(Process process) throws IOException
 	{
-		process.destroy();
+		terminateDebugTarget(process, null);
+	}
+	
+	@Override
+	public void terminateDebugTarget(Process process, ILauncher launcher) throws IOException {
+		if(null == launcher)
+		{
+			process.destroy();
+		}
+		else
+		{
+			launcher.terminate(process);
+		}
+		
+	}
+	
+	public String queryWindowsRegistry(String key, String value) throws IOException
+	{
+		return queryWindowsRegistry(key, value, 0);
 	}
 
 	/**
@@ -330,7 +351,7 @@ public class DefaultDebuggerCallbacks implements IDebuggerCallbacks
 	 * calls.  I had to do it this way because it is too hard, at this point,
 	 * to add native code to the Flex code tree.
 	 */
-	public String queryWindowsRegistry(String key, String value) throws IOException
+	public String queryWindowsRegistry(String key, String value, int registryBitMode) throws IOException
 	{
 		Process p = null;
 		String result = null;

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Frame.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Frame.java b/modules/debugger/src/java/flash/tools/debugger/Frame.java
index 127731ab..835c0d1 100644
--- a/modules/debugger/src/java/flash/tools/debugger/Frame.java
+++ b/modules/debugger/src/java/flash/tools/debugger/Frame.java
@@ -1,20 +1,18 @@
 /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package flash.tools.debugger;
@@ -38,9 +36,9 @@ public interface Frame
 	/**
 	 * 'this' variable for the frame.  Will return null
 	 * if no 'this' pointer available for the frame.
-	 * @throws NoResponseException
-	 * @throws NotSuspendedException
-	 * @throws NotConnectedException
+	 * @throws flash.tools.debugger.NoResponseException
+	 * @throws flash.tools.debugger.NotSuspendedException
+	 * @throws flash.tools.debugger.NotConnectedException
 	 */
     public Variable getThis(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException;
 
@@ -48,9 +46,9 @@ public interface Frame
 	 * Arguments that were passed into the function.  An empty
 	 * array is used to denote that no arguments were passed into 
 	 * this function scope.
-	 * @throws NoResponseException
-	 * @throws NotSuspendedException 
-	 * @throws NotConnectedException 
+	 * @throws flash.tools.debugger.NoResponseException
+	 * @throws flash.tools.debugger.NotSuspendedException
+	 * @throws flash.tools.debugger.NotConnectedException
 	 */
     public Variable[] getArguments(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException;
 
@@ -58,9 +56,9 @@ public interface Frame
 	 * Locals used within this function scope.  An empty
 	 * array is used to denote no locals are available 
 	 * within this function scope.
-	 * @throws NoResponseException
-	 * @throws NotSuspendedException 
-	 * @throws NotConnectedException 
+	 * @throws flash.tools.debugger.NoResponseException
+	 * @throws flash.tools.debugger.NotSuspendedException
+	 * @throws flash.tools.debugger.NotConnectedException
 	 */
     public Variable[] getLocals(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException;
 
@@ -115,4 +113,10 @@ public interface Frame
 	 * scope chain entries which were created via "with var".
 	 */
 	public Variable[] getScopeChain(Session s) throws NoResponseException, NotSuspendedException, NotConnectedException;
+	
+	/**
+	 * Returns the worker ID associated to this frame. This will return
+	 * Isolate.DEFAULT_ID, that is, the main worker.
+	 */
+	public int getIsolateId();
 }

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/IDebuggerCallbacks.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/IDebuggerCallbacks.java b/modules/debugger/src/java/flash/tools/debugger/IDebuggerCallbacks.java
index e704814..4151d53 100644
--- a/modules/debugger/src/java/flash/tools/debugger/IDebuggerCallbacks.java
+++ b/modules/debugger/src/java/flash/tools/debugger/IDebuggerCallbacks.java
@@ -1,20 +1,18 @@
 /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package flash.tools.debugger;
@@ -82,6 +80,18 @@ public interface IDebuggerCallbacks
 	 * Terminates a debug target process.
 	 */
 	public void terminateDebugTarget(Process process) throws IOException;
+	
+	/**
+	 * Launches a debug target using the launcher instance<code>ILauncher.launch(cmd)</code>.
+	 * 
+	 */
+	public Process launchDebugTarget(String[] cmd, ILauncher launcher) throws IOException;
+
+	/**
+	 * Terminates a debug target process by invoking <code>ILauncher.terminate(process)</code>
+	 */
+	public void terminateDebugTarget(Process process, ILauncher launcher) throws IOException;
+
 
 	/**
 	 * Query the Windows registry.
@@ -96,13 +106,19 @@ public interface IDebuggerCallbacks
 	 *            value
 	 * @return the value stored at the location, or null if key or value was not
 	 *         found
-	 * @throws IOException
+	 * @throws java.io.IOException
 	 *             indicates the registry query failed -- warning, this can
 	 *             really happen! Some implementations of this function don't
 	 *             work on Windows 2000. So, this function should not be counted
 	 *             on too heavily -- you should have a backup plan.
 	 */
 	public String queryWindowsRegistry(String key, String value) throws IOException;
+	
+	/**
+	 * Same as queryWindowsRegistry, but allows specific access to the 32-bit
+	 * or 64-bit part of the registry.
+	 */
+	public String queryWindowsRegistry(String key, String value, int registryBitMode) throws IOException;
 
 	/**
 	 * Returns the version number of an application. For example, Firefox 3.5.4
@@ -127,7 +143,7 @@ public interface IDebuggerCallbacks
 	 *         this function needs to be cross- platform, and the format of
 	 *         version information tends to vary widely from one platform to
 	 *         another.
-	 * @throws IOException
+	 * @throws java.io.IOException
 	 *             e.g. for file not found, etc.
 	 */
 	public int[] getAppVersion(File application) throws IOException;

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/ILauncher.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/ILauncher.java b/modules/debugger/src/java/flash/tools/debugger/ILauncher.java
new file mode 100644
index 0000000..24b0623
--- /dev/null
+++ b/modules/debugger/src/java/flash/tools/debugger/ILauncher.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flash.tools.debugger;
+
+import java.io.IOException;
+
+/**
+ * A ILauncher which handles the launching of the URI or the command.
+ * 
+ * ILauncher is to provide more flexibility to handle the Player launch in different platforms.
+ * 
+ * @author ugs
+ *
+ */
+public interface ILauncher {
+
+	/**
+	 * Launches the debug target. 
+	 * 
+	 * @param cmd - Launch URL and other arguments
+	 * @return A handle to the process.
+	 * 
+	 * @throws java.io.IOException
+	 */
+	public Process launch(String[] cmd) throws IOException;
+
+	/**
+	 * Terminate the process started by launch method.
+	 * @param process - process started by launch.
+	 * @throws java.io.IOException
+	 */
+	public void terminate(Process process) throws IOException;
+	
+	
+}

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Isolate.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Isolate.java b/modules/debugger/src/java/flash/tools/debugger/Isolate.java
new file mode 100644
index 0000000..982c2dd
--- /dev/null
+++ b/modules/debugger/src/java/flash/tools/debugger/Isolate.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flash.tools.debugger;
+
+/**
+ * The Isolate object uniquely identifies a "Worker" in ActionScript.
+ * Workers are conceptually similar to Threads, but their implementation
+ * closely follows more that of a web worker than an actual OS Thread.
+ * 
+ * By default there is a default isolate object with id DEFAULT_ID.
+ * @author anirudhs
+ *
+ */
+public interface Isolate {
+	
+	public static final int DEFAULT_ID = 1;
+	
+	/**
+	 * Get the unique integer ID associated with the
+	 * worker. This is Isolate.DEFAULT_ID for the
+	 * primordial. 
+	 * @return unique integer ID
+	 */
+	public int getId();
+	
+}

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/IsolateController.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/IsolateController.java b/modules/debugger/src/java/flash/tools/debugger/IsolateController.java
new file mode 100644
index 0000000..ed09477
--- /dev/null
+++ b/modules/debugger/src/java/flash/tools/debugger/IsolateController.java
@@ -0,0 +1,184 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flash.tools.debugger;
+
+import flash.tools.debugger.expression.PlayerFaultException;
+
+/**
+ * Worker specific debug session commands. These are a subset of Session that
+ * can be individually routed to a specific worker (including the main worker if
+ * the player does not support concurrency). This is implemented by
+ * PlayerSession and used by the getWorkerSession() api.
+ * 
+ * @see flash.tools.debugger.IsolateSession,
+ *      flash.tools.debugger.Session#getWorkerSession(int)
+ * @author anirudhs
+ * 
+ */
+public interface IsolateController {
+	
+	/**
+	 * @see flash.tools.debugger.Session#resume()
+	 */
+	public void resumeWorker(int isolateId) throws NotSuspendedException, NotConnectedException, NoResponseException;
+
+	/**
+	 * @see flash.tools.debugger.Session#suspend()
+	 */
+	public void suspendWorker(int isolateId) throws SuspendedException, NotConnectedException, NoResponseException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#isSuspended()
+	 */
+	public boolean isWorkerSuspended(int isolateId) throws NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#isSuspended()
+	 */
+	public int suspendReasonWorker(int isolateId) throws NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#getFrames()
+	 */
+	public Frame[] getFramesWorker(int isolateId) throws NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#stepInto()
+	 */
+	public void stepIntoWorker(int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#stepOut()
+	 */
+	public void stepOutWorker(int isolateId)  throws NotSuspendedException, NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#stepOver()
+	 */
+	public void stepOverWorker(int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#stepContinue()
+	 */
+	public void stepContinueWorker(int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#getSwfs()
+	 */
+	public SwfInfo[] getSwfsWorker(int isolateId) throws NoResponseException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#setBreakpoint(int, int)
+	 */
+	public Location setBreakpointWorker(int fileId, int lineNum, int isolateId) throws NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#getWatchList()
+	 */
+	public Watch[] getWatchListWorker(int isolateId) throws NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#getVariableList()
+	 */
+	public Variable[] getVariableListWorker(int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException, VersionException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#getValue(long)
+	 */
+	public Value getValueWorker(long valueId, int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+	/**
+	 * @see flash.tools.debugger.Session#getGlobal(String)
+	 */
+	public Value getGlobalWorker(String name, int isolateId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#evalIs(Value, Value)
+	 */
+	public boolean evalIsWorker(Value value, Value type, int isolateId) throws PlayerDebugException, PlayerFaultException;
+
+	/**
+	 * @see flash.tools.debugger.Session#evalIs(Value, String)
+	 */
+	public boolean evalIsWorker(Value value, String type, int isolateId) throws PlayerDebugException, PlayerFaultException;
+
+	/**
+	 * @see flash.tools.debugger.Session#evalInstanceof(Value, Value)
+	 */
+	public boolean evalInstanceofWorker(Value value, Value type, int isolateId) throws PlayerDebugException, PlayerFaultException;
+
+	/**
+	 * @see flash.tools.debugger.Session#evalInstanceof(Value, String)
+	 */
+	public boolean evalInstanceofWorker(Value value, String type, int isolateId) throws PlayerDebugException, PlayerFaultException;
+
+	/**
+	 * @see flash.tools.debugger.Session#evalIn(Value, Value)
+	 */
+	public boolean evalInWorker(Value property, Value object, int isolateId) throws PlayerDebugException, PlayerFaultException;
+
+	/**
+	 * @see flash.tools.debugger.Session#evalAs(Value, Value)
+	 */
+	public Value evalAsWorker(Value value, Value type, int isolateId) throws PlayerDebugException, PlayerFaultException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#callFunction(Value, String, Value[])
+	 */
+	public Value callFunctionWorker(Value thisObject, String functionName, Value[] args, int isolateId) throws PlayerDebugException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#callConstructor(String, Value[])
+	 */
+	public Value callConstructorWorker(String classname, Value[] args, int isolateId) throws PlayerDebugException;
+
+	/**
+	 * @see flash.tools.debugger.Session#setExceptionBreakpoint(String)
+	 */
+	public boolean setExceptionBreakpointWorker(String exceptionClass, int isolateId) throws NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#clearExceptionBreakpoint(String)
+	 */
+	public boolean clearExceptionBreakpointWorker(String exceptionClass, int isolateId) throws NoResponseException, NotConnectedException;
+
+	/**
+	 * @see flash.tools.debugger.Session#breakOnCaughtExceptions(boolean)
+	 */
+	public void breakOnCaughtExceptions(boolean b, int isolateId) throws NotSupportedException, NoResponseException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#supportsWatchpoints()
+	 */
+	public boolean supportsWatchpoints(int isolateId);
+	
+	/**
+	 * @see flash.tools.debugger.Session#playerCanBreakOnAllExceptions()
+	 */
+	public boolean playerCanBreakOnAllExceptions(int isolateId);
+	
+	/**
+	 * @see flash.tools.debugger.Session#supportsWideLineNumbers()
+	 */
+	public boolean supportsWideLineNumbers(int isolateId);
+	
+	/**
+	 * @see flash.tools.debugger.Session#playerCanCallFunctions(String)
+	 */
+	public boolean playerCanCallFunctions(int isolateId);
+	
+}

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/IsolateSession.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/IsolateSession.java b/modules/debugger/src/java/flash/tools/debugger/IsolateSession.java
new file mode 100644
index 0000000..6b57d62
--- /dev/null
+++ b/modules/debugger/src/java/flash/tools/debugger/IsolateSession.java
@@ -0,0 +1,177 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flash.tools.debugger;
+
+import flash.tools.debugger.expression.PlayerFaultException;
+
+/**
+ * Used to issue commands to a particular worker (isolate).
+ * @see Session
+ * @author anirudhs
+ */
+public interface IsolateSession {
+	
+	/**
+	 * @see flash.tools.debugger.Session#resume()
+	 */
+	public void resume() throws NotSuspendedException, NotConnectedException, NoResponseException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#suspend()
+	 */
+	public void suspend() throws SuspendedException, NotConnectedException, NoResponseException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#isSuspended()
+	 */
+	public boolean isSuspended() throws NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#isSuspended()
+	 */
+	public int suspendReason() throws NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#getFrames()
+	 */
+	public Frame[] getFrames() throws NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#stepInto()
+	 */
+	public void stepInto() throws NotSuspendedException, NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#stepOut()
+	 */
+	public void stepOut()  throws NotSuspendedException, NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#stepOver()
+	 */
+	public void stepOver() throws NotSuspendedException, NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#stepContinue()
+	 */
+	public void stepContinue() throws NotSuspendedException, NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#getSwfs()
+	 */
+	public SwfInfo[] getSwfs() throws NoResponseException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#setBreakpoint(int, int)
+	 */
+	public Location setBreakpoint(int fileId, int lineNum) throws NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#getWatchList()
+	 */
+	public Watch[] getWatchList() throws NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#getVariableList()
+	 */
+	public Variable[] getVariableList() throws NotSuspendedException, NoResponseException, NotConnectedException, VersionException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#getValue(long)
+	 */
+	public Value getValue(long valueId) throws NotSuspendedException, NoResponseException, NotConnectedException;
+
+	/**
+	 * @see flash.tools.debugger.Session#getGlobal(String)
+	 */
+	public Value getGlobal(String name) throws NotSuspendedException, NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#evalIs(Value, Value)
+	 */
+	public boolean evalIs(Value value, Value type) throws PlayerDebugException, PlayerFaultException;
+
+	/**
+	 * @see flash.tools.debugger.Session#evalIs(Value, String)
+	 */
+	public boolean evalIs(Value value, String type) throws PlayerDebugException, PlayerFaultException;
+
+	/**
+	 * @see flash.tools.debugger.Session#evalInstanceof(Value, Value)
+	 */
+	public boolean evalInstanceof(Value value, Value type) throws PlayerDebugException, PlayerFaultException;
+
+	/**
+	 * @see flash.tools.debugger.Session#evalInstanceof(Value, String)
+	 */
+	public boolean evalInstanceof(Value value, String type) throws PlayerDebugException, PlayerFaultException;
+
+	/**
+	 * @see flash.tools.debugger.Session#evalIn(Value, Value)
+	 */
+	public boolean evalIn(Value property, Value object) throws PlayerDebugException, PlayerFaultException;
+
+	/**
+	 * @see flash.tools.debugger.Session#evalAs(Value, Value)
+	 */
+	public Value evalAs(Value value, Value type) throws PlayerDebugException, PlayerFaultException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#resume()
+	 */
+	public Value callFunction(Value thisObject, String functionName, Value[] args) throws PlayerDebugException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#callFunction(Value, String, Value[])
+	 */
+	public Value callConstructor(String classname, Value[] args) throws PlayerDebugException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#setExceptionBreakpoint(String)
+	 */
+	public boolean setExceptionBreakpoint(String exceptionClass) throws NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#clearExceptionBreakpoint(String)
+	 */
+	public boolean clearExceptionBreakpoint(String exceptionClass) throws NoResponseException, NotConnectedException;
+	
+	/**
+	 * @see flash.tools.debugger.Session#breakOnCaughtExceptions(boolean)
+	 */
+	public void breakOnCaughtExceptions(boolean b) throws NotSupportedException, NoResponseException;
+
+	/**
+	 * @see flash.tools.debugger.Session#supportsWatchpoints()
+	 */
+	public boolean supportsWatchpoints();
+	
+	/**
+	 * @see flash.tools.debugger.Session#playerCanBreakOnAllExceptions()
+	 */
+	public boolean playerCanBreakOnAllExceptions();
+	
+	/**
+	 * @see flash.tools.debugger.Session#supportsWideLineNumbers()
+	 */
+	public boolean supportsWideLineNumbers();
+	
+	/**
+	 * @see flash.tools.debugger.Session#playerCanCallFunctions()
+	 */
+	public boolean playerCanCallFunctions();
+}

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Location.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Location.java b/modules/debugger/src/java/flash/tools/debugger/Location.java
index 0c6c506..bf6103c 100644
--- a/modules/debugger/src/java/flash/tools/debugger/Location.java
+++ b/modules/debugger/src/java/flash/tools/debugger/Location.java
@@ -1,20 +1,18 @@
 /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package flash.tools.debugger;
@@ -34,5 +32,10 @@ public interface Location
 	 * Line number within the source for this location 
 	 */
     public int getLine();
+    
+    /**
+     * Worker to which this location belongs.
+     */
+    public int getIsolateId();
 
 }

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Session.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Session.java b/modules/debugger/src/java/flash/tools/debugger/Session.java
index 6a3df50..e341990 100644
--- a/modules/debugger/src/java/flash/tools/debugger/Session.java
+++ b/modules/debugger/src/java/flash/tools/debugger/Session.java
@@ -346,7 +346,7 @@ public interface Session
 	 * to the end of the list.
 	 *
 	 * @param v the variable, upon whose member, the watch is to be placed.
-	 * @param varName is the mmeber name upon which the watch
+	 * @param memberName is the mmeber name upon which the watch
 	 * should be placed.  This variable name may NOT contain the dot ('.')
 	 * character and MUST be a member of v.
 	 * @param kind access type that will trigger the watchpoint to fire --
@@ -367,8 +367,6 @@ public interface Session
 	 *
 	 * @param watch
 	 *            the watch to enable or disable
-	 * @param enabled
-	 *            whether to enable it or disable it
 	 * @throws NotSupportedException
 	 * @throws NotConnectedException
 	 * @throws NoResponseException
@@ -548,4 +546,59 @@ public interface Session
 	 * PREF_SOCKET_TIMEOUT and helps in detecting broken connections.
 	 */
 	public Exception getDisconnectCause();
+
+	/**
+	 * Set an exception breakpoint. Returns true if succeeded.
+	 * @param exceptionClass
+	 * @return
+	 * @throws NoResponseException
+	 * @throws NotConnectedException
+	 */
+	public boolean setExceptionBreakpoint(String exceptionClass) throws NoResponseException, NotConnectedException;
+
+	/**
+	 * Clears an exception breakpoint. Returns true if succeeded.
+	 * @param exceptionClass
+	 * @return
+	 * @throws NoResponseException
+	 * @throws NotConnectedException
+	 */
+	public boolean clearExceptionBreakpoint(String exceptionClass) throws NoResponseException, NotConnectedException;
+
+	// Concurrency begin
+
+	/**
+	 * Returns whether the target player supports concurrency.
+	 * @see #setActiveIsolate(Value)
+	 */
+	public boolean supportsConcurrency();
+
+	/**
+	 * Get an array of all workers that the debugger knows of.
+	 */
+	public Isolate[] getWorkers();
+
+	/**
+	 * Ask the player again for a list of all workers. Use this
+	 * method with caution as it will also reset all state about
+	 * workers that the debugger is aware of.
+	 */
+	public Isolate[] refreshWorkers() throws  NotSupportedException, NotSuspendedException, NoResponseException, NotConnectedException;
+
+	/**
+	 * Return the worker specific session object that can be used
+	 * to communicate with that worker.
+	 */
+	public IsolateSession getWorkerSession(int isolateId);
+
+	/**
+	 *
+	 * Sets the ILauncher instance which is associated with this session.
+	 * ILauncher instance is used to terminate the process at the end of the debugging session.
+	 *
+	 * @param launcher
+	 * 				ILauncher instance used to launch & terminate the process.
+	 */
+	public void setLauncher(ILauncher launcher);
+
 }

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/SwfInfo.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/SwfInfo.java b/modules/debugger/src/java/flash/tools/debugger/SwfInfo.java
index 7858edf..b87b52e 100644
--- a/modules/debugger/src/java/flash/tools/debugger/SwfInfo.java
+++ b/modules/debugger/src/java/flash/tools/debugger/SwfInfo.java
@@ -104,4 +104,9 @@ public interface SwfInfo
 	 * @since Version 2
 	 */
 	public boolean containsSource(SourceFile f);
+
+	/**
+	 * Return the worker ID to which this SWF belongs.
+	 */
+	public int getIsolateId();
 }

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Value.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Value.java b/modules/debugger/src/java/flash/tools/debugger/Value.java
index 077e8a4..d849db7 100644
--- a/modules/debugger/src/java/flash/tools/debugger/Value.java
+++ b/modules/debugger/src/java/flash/tools/debugger/Value.java
@@ -1,20 +1,18 @@
 /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package flash.tools.debugger;
@@ -32,6 +30,7 @@ public interface Value
 	 * A special object representing ActionScript's "undefined" value.
 	 */
 	public static final Object UNDEFINED = new Object() {
+		@Override
 		public String toString() {
 			return "undefined";  //$NON-NLS-1$
 		}
@@ -119,7 +118,7 @@ public interface Value
 	 * The class name of the value. This isn't actually very useful, and should
 	 * probably go away; it had more relevant in ActionScript 2, when the return
 	 * value from this function could have been any one of the strings returned
-	 * by {@link DVariable#classNameFor(long, boolean)}.
+	 * by {@link flash.tools.debugger.concrete.DVariable#classNameFor(long, boolean)}.
 	 * 
 	 * In the AS3 world, the only possible return values from this function are:
 	 * 
@@ -137,12 +136,12 @@ public interface Value
 	 * regarding the variable.  They are bitfields identified
 	 * as VariableAttribute.xxx
 	 * 
-	 * @see VariableAttribute
+	 * @see flash.tools.debugger.VariableAttribute
 	 */
 	public int			getAttributes();
 
 	/**
-	 * @see VariableAttribute
+	 * @see flash.tools.debugger.VariableAttribute
 	 */
 	public boolean		isAttributeSet(int variableAttribute);
 
@@ -185,9 +184,9 @@ public interface Value
 	/**
 	 * Returns all child members of this variable.  Can only be called for
 	 * variables of type Object or MovieClip.
-	 * @throws NotConnectedException 
-	 * @throws NoResponseException 
-	 * @throws NotSuspendedException 
+	 * @throws flash.tools.debugger.NotConnectedException
+	 * @throws flash.tools.debugger.NoResponseException
+	 * @throws flash.tools.debugger.NotSuspendedException
 	 */
 	public Variable[]	getMembers(Session s) throws NotSuspendedException, NoResponseException, NotConnectedException;
 
@@ -197,9 +196,9 @@ public interface Value
 	 * @param s the session
 	 * @param name just a varname name, without its namespace (see <code>getName()</code>)
 	 * @return the specified child member, or null if there is no such child.
-	 * @throws NotConnectedException 
-	 * @throws NoResponseException 
-	 * @throws NotSuspendedException 
+	 * @throws flash.tools.debugger.NotConnectedException
+	 * @throws flash.tools.debugger.NoResponseException
+	 * @throws flash.tools.debugger.NotSuspendedException
 	 */
 	public Variable     getMemberNamed(Session s, String name) throws NotSuspendedException, NoResponseException, NotConnectedException;
 
@@ -207,9 +206,9 @@ public interface Value
 	 * Returns the number of child members of this variable.  If called for
 	 * a variable which has a simple type such as integer or string,
 	 * returns zero.
-	 * @throws NotConnectedException 
-	 * @throws NoResponseException 
-	 * @throws NotSuspendedException 
+	 * @throws flash.tools.debugger.NotConnectedException
+	 * @throws flash.tools.debugger.NoResponseException
+	 * @throws flash.tools.debugger.NotSuspendedException
 	 */
 	public int			getMemberCount(Session s) throws NotSuspendedException, NoResponseException, NotConnectedException;
 
@@ -248,4 +247,9 @@ public interface Value
 	 * @param name Variable name.
 	 */
 	public Variable[] getPrivateInheritedMemberNamed(String name);
+	
+	/**
+	 * Get the worker id of the isolate to which this value belongs.
+	 */
+	public int getIsolateId();
 }

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Variable.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Variable.java b/modules/debugger/src/java/flash/tools/debugger/Variable.java
index 02561e2..703dd6f 100644
--- a/modules/debugger/src/java/flash/tools/debugger/Variable.java
+++ b/modules/debugger/src/java/flash/tools/debugger/Variable.java
@@ -1,20 +1,18 @@
 /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package flash.tools.debugger;
@@ -66,7 +64,7 @@ public interface Variable
 	 * value can be compared directly to VariableAttribute.PUBLIC_SCOPE, etc.
 	 * using "==".
 	 * 
-	 * @see VariableAttribute
+	 * @see flash.tools.debugger.VariableAttribute
 	 */
 	public int			getScope();
 
@@ -100,12 +98,12 @@ public interface Variable
 	 * regarding the variable.  They are bitfields identified
 	 * as VariableAttribute.xxx
 	 * 
-	 * @see VariableAttribute
+	 * @see flash.tools.debugger.VariableAttribute
 	 */
 	public int			getAttributes();
 
 	/**
-	 * @see VariableAttribute
+	 * @see flash.tools.debugger.VariableAttribute
 	 */
 	public boolean		isAttributeSet(int variableAttribute);
 
@@ -136,11 +134,11 @@ public interface Variable
 	 *         invoked and the setter threw an exception. In that case, look at
 	 *         FaultEvent.information to see the error text of the exception
 	 *         that occurred.
-	 * @throws NoResponseException
+	 * @throws flash.tools.debugger.NoResponseException
 	 *             if times out
-	 * @throws NotSuspendedException
+	 * @throws flash.tools.debugger.NotSuspendedException
 	 *             if Player is running
-	 * @throws NotConnectedException
+	 * @throws flash.tools.debugger.NotConnectedException
 	 *             if Player is disconnected from Session
 	 */
 	public FaultEvent setValue(Session s, int type, String value) throws NotSuspendedException, NoResponseException, NotConnectedException;
@@ -158,9 +156,14 @@ public interface Variable
 	 * <p>
 	 * Has no effect if <code>needsToInvokeGetter()</code> is false.
 	 * 
-	 * @throws NotSuspendedException
-	 * @throws NoResponseException
-	 * @throws NotConnectedException
+	 * @throws flash.tools.debugger.NotSuspendedException
+	 * @throws flash.tools.debugger.NoResponseException
+	 * @throws flash.tools.debugger.NotConnectedException
 	 */
 	public void invokeGetter(Session s) throws NotSuspendedException, NoResponseException, NotConnectedException;
+	
+	/**
+	 * Get the worker id of the isolate to which this value belongs.
+	 */
+	public int getIsolateId();
 }

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/Watch.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/Watch.java b/modules/debugger/src/java/flash/tools/debugger/Watch.java
index 99186ab..d8d9aef 100644
--- a/modules/debugger/src/java/flash/tools/debugger/Watch.java
+++ b/modules/debugger/src/java/flash/tools/debugger/Watch.java
@@ -1,20 +1,18 @@
 /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package flash.tools.debugger;
@@ -46,4 +44,9 @@ public interface Watch
 	 * The kind of watch placed on the variable being watched.
 	 */
     public int getKind();
+    
+    /**
+     * The isolate to which this watchpoint belongs.
+     */
+    public int getIsolateId();
 }

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/concrete/DIsolate.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/concrete/DIsolate.java b/modules/debugger/src/java/flash/tools/debugger/concrete/DIsolate.java
new file mode 100644
index 0000000..3a0b21b
--- /dev/null
+++ b/modules/debugger/src/java/flash/tools/debugger/concrete/DIsolate.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package flash.tools.debugger.concrete;
+
+import flash.tools.debugger.Isolate;
+
+/**
+ * Concrete implementation of an Isolate.
+ * @author anirudhs
+ */
+public class DIsolate implements Isolate {
+
+	/** Isolate object behind the primordial or main thread (always exists) */
+	public static final DIsolate DEFAULT_ISOLATE = new DIsolate(Isolate.DEFAULT_ID);
+	
+	private int id;
+	
+	public DIsolate(int id) {
+		this.id = id;
+	}
+	
+	/* (non-Javadoc)
+	 * @see flash.tools.debugger.Isolate#getId()
+	 */
+	@Override
+	public int getId() {
+		return id;
+	}
+
+	@Override
+	public String toString() {		
+		return "Worker " + getId(); //$NON-NLS-1$
+	}	
+
+}

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/379cb609/modules/debugger/src/java/flash/tools/debugger/concrete/DLocation.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/concrete/DLocation.java b/modules/debugger/src/java/flash/tools/debugger/concrete/DLocation.java
index 39181eb..01c5ab3 100644
--- a/modules/debugger/src/java/flash/tools/debugger/concrete/DLocation.java
+++ b/modules/debugger/src/java/flash/tools/debugger/concrete/DLocation.java
@@ -1,20 +1,18 @@
 /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package flash.tools.debugger.concrete;
@@ -26,13 +24,15 @@ public class DLocation implements Location
 {
 	SourceFile	m_source;
 	int			m_line;
+	int m_isolateId;
 	boolean     m_removed;
 
-	DLocation(SourceFile src, int line)
+	DLocation(SourceFile src, int line, int isolateId)
 	{
 		m_source = src;
 		m_line = line;
 		m_removed = false;
+		m_isolateId = isolateId;
 	}
 
 	/* getters/setters */
@@ -60,8 +60,14 @@ public class DLocation implements Location
 	}
 	
 	/** for debugging */
+	@Override
 	public String toString()
 	{
 		return m_source.toString() + ":" + m_line; //$NON-NLS-1$
 	}
+
+	@Override
+	public int getIsolateId() {
+		return m_isolateId;
+	}
 }