flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ftho...@apache.org
Subject [3/5] Revert "FLEX-34062: FDB waits up to 20s per SWF before we can start debugging"
Date Mon, 27 Jan 2014 17:23:55 GMT
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSession.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSession.java b/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSession.java
index 37f15f2..e2b0b62 100644
--- a/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSession.java
+++ b/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSession.java
@@ -74,14 +74,14 @@ import flash.util.Trace;
 public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 {
 	public static final int MAX_STACK_DEPTH = 256;
-	private static final long MAX_TERMINATE_WAIT_MILLIS = 10000;
+	public static final long MAX_TERMINATE_WAIT_MILLIS = 10000;
 
-	private final Socket				m_socket;
-	private final DProtocol			m_protocol;
-	private final DManager			m_manager;
-	private final IDebuggerCallbacks	m_debuggerCallbacks;
+	private Socket				m_socket;
+	private DProtocol			m_protocol;
+	private DManager			m_manager;
+	private IDebuggerCallbacks	m_debuggerCallbacks;
 	private Process				m_process;
-	private final Map<String, Object> m_prefs; // WARNING -- accessed from multiple threads
+	private Map<String, Object> m_prefs; // WARNING -- accessed from multiple threads
 	private static final String	s_newline = System.getProperty("line.separator"); //$NON-NLS-1$
 
 	private volatile boolean m_isConnected; // WARNING -- accessed from multiple threads
@@ -105,15 +105,15 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	private AIRLaunchInfo	m_airLaunchInfo; // null if this is not an AIR app
 
 	static volatile boolean	m_debugMsgOn;		// debug ONLY; turned on with "set $debug_messages = 1"
-	private volatile int			m_debugMsgSize;		// debug ONLY; controlled with "set $debug_message_size = NNN"
+	volatile int			m_debugMsgSize;		// debug ONLY; controlled with "set $debug_message_size = NNN"
 	static volatile boolean	m_debugMsgFileOn;	// debug ONLY for file dump; turned on with "set $debug_message_file = 1"
-	private volatile int			m_debugMsgFileSize;	// debug ONLY for file dump; controlled with "set $debug_message_file_size = NNN"
+	volatile int			m_debugMsgFileSize;	// debug ONLY for file dump; controlled with "set $debug_message_file_size = NNN"
 
 	/**
 	 * A simple cache of previous "is" and "instanceof" queries, in order to
 	 * avoid having to send redundant messages to the player.
 	 */
-	private final Map<String, Boolean> m_evalIsAndInstanceofCache = new HashMap<String, Boolean>();
+	private Map<String, Boolean> m_evalIsAndInstanceofCache = new HashMap<String, Boolean>();
 
 	private static final String DEBUG_MESSAGES = "$debug_messages"; //$NON-NLS-1$
 	private static final String DEBUG_MESSAGE_SIZE = "$debug_message_size"; //$NON-NLS-1$
@@ -124,7 +124,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 
 	private static final String FLASH_PREFIX = "$flash_"; //$NON-NLS-1$
 
-	private PlayerSession(Socket s, DProtocol proto, DManager manager, IDebuggerCallbacks debuggerCallbacks)
+	PlayerSession(Socket s, DProtocol proto, DManager manager, IDebuggerCallbacks debuggerCallbacks)
 	{
 		m_isConnected = false;
 		m_isHalted = false;
@@ -142,11 +142,13 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 		m_debuggerCallbacks = debuggerCallbacks;
 	}
 	
-	private static PlayerSession createFromSocketHelper(Socket s, IDebuggerCallbacks debuggerCallbacks, DProtocol proto) {
+	private static PlayerSession createFromSocketHelper(Socket s, IDebuggerCallbacks debuggerCallbacks, DProtocol proto) throws IOException
+	{
 		// let the manager hear incoming messages
 		DManager manager = new DManager();
 
-		return new PlayerSession(s, proto, manager, debuggerCallbacks);
+		PlayerSession session = new PlayerSession(s, proto, manager, debuggerCallbacks);
+		return session;
 	}
 
 	/**
@@ -182,7 +184,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	/* getter */
 	public DMessageCounter		getMessageCounter()		{ return m_protocol.getMessageCounter(); }
 	public String				getURI()				{ return m_manager.getURI(); }
-	boolean				playerSupportsGet()		{ return m_manager.isGetSupported(); }
+	public boolean				playerSupportsGet()		{ return m_manager.isGetSupported(); }
     public int                  playerVersion()         { return m_manager.getVersion(); }
     public SourceLocator        getSourceLocator()      { return m_manager.getSourceLocator(); }
 
@@ -215,7 +217,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 * Set preference
 	 * If an invalid preference is passed, it will be silently ignored.
 	 */
-	public void			setPreferences(Map<String, ?> map)	{ m_prefs.putAll(map); mapBack(); }
+	public void			setPreferences(Map<String, ? extends Object> map)	{ m_prefs.putAll(map); mapBack(); }
 	public Set<String>	keySet()								{ return m_prefs.keySet(); }
 	public Object		getPreferenceAsObject(String pref)		{ return m_prefs.get(pref); }
 
@@ -224,7 +226,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 */
 	public void setPreference(String pref, int value)
 	{
-		m_prefs.put(pref, value);
+		m_prefs.put(pref, new Integer(value));
 		mapBack();
 
 		// change in console messages?
@@ -241,7 +243,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	{
 		Object prefValue = getPreferenceAsObject(preferenceName);
 		if (prefValue != null)
-			return (Integer) prefValue;
+			return ((Integer)prefValue).intValue();
 		else
 			return defaultValue;
 	}
@@ -251,7 +253,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	{
 		Object prefValue = getPreferenceAsObject(preferenceName);
 		if (prefValue != null)
-			return (Integer) prefValue != 0;
+			return ((Integer)prefValue).intValue() != 0 ? true : false;
 		else
 			return defaultValue;
 	}
@@ -268,12 +270,12 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 
 	public int getPreference(String pref)
 	{
-		int val;
+		int val = 0;
 		Integer i = (Integer)m_prefs.get(pref);
 		if (i == null)
 			throw new NullPointerException();
 		else
-			val = i;
+			val = i.intValue();
 		return val;
 	}
 
@@ -302,7 +304,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 */
 	public boolean bind() throws VersionException
 	{
-		boolean bound;
+		boolean bound = false;
 
 		if (m_isConnected)
 			return false;
@@ -377,7 +379,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 		m_protocol.unbind();
 
 		// kill the socket
-		try { m_socket.close(); } catch(IOException ignored) {}
+		try { m_socket.close(); } catch(IOException io) {}
 
 		m_isConnected = false;
 		m_isHalted = false;
@@ -407,14 +409,16 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 			execArgs.add("-"); //$NON-NLS-1$
 			if (argv != null)
 			{
-                Collections.addAll(execArgs, argv);
+				for (int i=0; i<argv.length; ++i)
+					execArgs.add(argv[i]);
 			}
 			Process osascript = Runtime.getRuntime().exec(execArgs.toArray(new String[execArgs.size()]));
 			// feed our AppleScript code to osascript's stdin
 			OutputStream outputStream = osascript.getOutputStream();
 			PrintWriter writer = new PrintWriter(outputStream, true);
 			writer.println("on run argv"); //$NON-NLS-1$ // this gives the name "argv" to the command-line args
-            for (String anAppleScript : appleScript) writer.println(anAppleScript);
+			for (int i=0; i<appleScript.length; ++i)
+				writer.println(appleScript[i]);
 			writer.println("end run"); //$NON-NLS-1$
 			writer.close();
 			InputStreamReader reader = new InputStreamReader(osascript.getInputStream());
@@ -466,6 +470,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 * running.  You should only call this function if you have already
 	 * checked that you are running on a Mac.
 	 *
+	 * @param browserName a name, e.g. "Safari", "Firefox", "Camino"
 	 * @return true if currently running
 	 */
 	private Set<String> runningApplications()
@@ -481,7 +486,8 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 		);
 		String[] apps = running.split(", "); //$NON-NLS-1$
 		Set<String> retval = new HashSet<String>();
-        Collections.addAll(retval, apps);
+		for (int i=0; i<apps.length; ++i)
+			retval.add(apps[i]);
 		return retval;
 	}
 
@@ -503,7 +509,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 			// currently never terminate when you tell it to, but the AIR player will
 			// terminate.
 			playerWillTerminateItself = unbind(true);
-		} catch(Exception ignored)
+		} catch(Exception e)
 		{
 		}
 
@@ -511,13 +517,16 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 		{
 			if (System.getProperty("os.name").toLowerCase().startsWith("mac os x")) //$NON-NLS-1$ //$NON-NLS-2$
 			{
-
-				if (m_airLaunchInfo == null && m_launchUrl != null && m_launchUrl.length() > 0)
+				if (m_airLaunchInfo != null)
+				{
+					// nothing we need to do -- Process.destroy() will kill the AIR app
+				}
+				else if (m_launchUrl != null && m_launchUrl.length() > 0)
 				{
 					boolean closedAnyWindows = false;
 					Set<String> runningApps = runningApplications();
 
-					if (runningApps.contains("Safari")) //$NON-NLS-1$
+					if (!closedAnyWindows && runningApps.contains("Safari")) //$NON-NLS-1$
 					{
 						try {
 							String url = m_launchUrl.replaceAll(" ", "%20"); //$NON-NLS-1$ //$NON-NLS-2$
@@ -580,14 +589,21 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 			// if we have a process pop it
 			if (m_process != null)
 			{
-                m_debuggerCallbacks.terminateDebugTarget(m_process);
-            }
+				try
+				{
+					m_debuggerCallbacks.terminateDebugTarget(m_process);
+				}
+				catch (IOException e)
+				{
+					// ignore
+				}
+			}
 		}
 		else if (m_process != null) {
 			try {
 				m_process.waitFor();
 			}
-			catch (Exception ignored) {
+			catch (Exception e) {
 			}
 		}
 
@@ -607,7 +623,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 */
 	private Set<String> waitForMacAppQuit(String browser) {
 		Set<String> runningApps;
-		boolean appClosed;
+		boolean appClosed = true;
 		final long startMillis = System.currentTimeMillis();		
 		final long waitMillis = 100;
 		do {
@@ -735,8 +751,8 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 			// doesn't send it
 			requestSwfInfo(0);
 		}
-
-		return m_manager.getSwfInfos();
+		SwfInfo[] swfs = m_manager.getSwfInfos();
+		return swfs;
 	}
 
 	/**
@@ -762,7 +778,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 */
 	public byte[] getActions(int which, int at, int len) throws NoResponseException
 	{
-		byte[] actions;
+		byte[] actions = null;
 
 		// send a actions message
 		DMessage dm = DMessageCache.alloc(12);
@@ -894,7 +910,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	public Location setBreakpoint(int fileId, int lineNum) throws NoResponseException, NotConnectedException
 	{
 		/* send the message to the player and await a response */
-		Location l;
+		Location l = null;
 		int bp = DLocation.encodeId(fileId, lineNum);
 
 		DMessage dm = DMessageCache.alloc(8);
@@ -948,7 +964,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 		return m_manager.getWatchpoints();
 	}
 
-	private Watch setWatch(long varId, String memberName, int kind) throws NotSupportedException
+	private Watch setWatch(long varId, String memberName, int kind) throws NoResponseException, NotConnectedException, NotSupportedException
 	{
 		// we really have two cases here, one where we add a completely new
 		// watchpoint and the other where we modify an existing one.
@@ -1037,7 +1053,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 
 		// request as many levels as we can get
 		int i = 0;
-		Value v;
+		Value v = null;
 		do
 		{
 			v = getValue(Value.LEVEL_ID-i);
@@ -1110,49 +1126,55 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 
 		// loop through all frame variables, and separate them into two
 		// groups: activation objects, and all others (locals and arguments)
-        for (DVariable member : frameVars) {
-            Matcher matcher = activationObjectNamePattern.matcher(member.getName());
-            if (matcher.matches())
-                activationObjects.add(member);
-            else
-                varmap.put(member.getName(), member);
-        }
+		for (int i=0; i<frameVars.length; ++i)
+		{
+			DVariable member = frameVars[i];
+			Matcher matcher = activationObjectNamePattern.matcher(member.getName());
+			if (matcher.matches())
+				activationObjects.add(member);
+			else
+				varmap.put(member.getName(), member);
+		}
 
 		// If there are no activation objects, then we don't need to do anything
 		if (activationObjects.size() == 0)
 			return;
 
 		// overwrite existing args and locals with ones pulled from the activation objects
-        for (DVariable activationObject : activationObjects) {
-            DVariable[] activationMembers = (DVariable[]) activationObject.getValue().getMembers(this);
-            for (DVariable member : activationMembers) {
-                int attributes = member.getAttributes();
-
-                // For some odd reason, the activation object often contains a whole bunch of
-                // other variables that we shouldn't be displaying.  I don't know what they
-                // are, but I do know that they are all marked "static".
-                if ((attributes & VariableAttribute.IS_STATIC) != 0)
-                    continue;
-
-                // No matter what the activation object member's scope is, we want all locals
-                // and arguments to be considered "public"
-                attributes &= ~(VariableAttribute.PRIVATE_SCOPE | VariableAttribute.PROTECTED_SCOPE | VariableAttribute.NAMESPACE_SCOPE);
-                attributes |= VariableAttribute.PUBLIC_SCOPE;
-                member.setAttributes(attributes);
-
-                String name = member.getName();
-                DVariable oldvar = varmap.get(name);
-                int vartype;
-                if (oldvar != null)
-                    vartype = oldvar.getAttributes() & (VariableAttribute.IS_ARGUMENT | VariableAttribute.IS_LOCAL);
-                else
-                    vartype = VariableAttribute.IS_LOCAL;
-                member.setAttributes(member.getAttributes() | vartype);
-                varmap.put(name, member);
-            }
-
-            context.convertLocalToActivationObject(activationObject);
-        }
+		for (int i=0; i<activationObjects.size(); ++i)
+		{
+			DVariable activationObject = activationObjects.get(i);
+			DVariable[] activationMembers = (DVariable[]) activationObject.getValue().getMembers(this);
+			for (int j=0; j<activationMembers.length; ++j)
+			{
+				DVariable member = activationMembers[j];
+				int attributes = member.getAttributes();
+
+				// For some odd reason, the activation object often contains a whole bunch of
+				// other variables that we shouldn't be displaying.  I don't know what they
+				// are, but I do know that they are all marked "static".
+				if ((attributes & VariableAttribute.IS_STATIC) != 0)
+					continue;
+
+				// No matter what the activation object member's scope is, we want all locals
+				// and arguments to be considered "public"
+				attributes &= ~(VariableAttribute.PRIVATE_SCOPE | VariableAttribute.PROTECTED_SCOPE | VariableAttribute.NAMESPACE_SCOPE);
+				attributes |= VariableAttribute.PUBLIC_SCOPE;
+				member.setAttributes(attributes);
+
+				String name = member.getName();
+				DVariable oldvar = varmap.get(name);
+				int vartype;
+				if (oldvar != null)
+					vartype = oldvar.getAttributes() & (VariableAttribute.IS_ARGUMENT | VariableAttribute.IS_LOCAL);
+				else
+					vartype = VariableAttribute.IS_LOCAL;
+				member.setAttributes(member.getAttributes() | vartype);
+				varmap.put(name, member);
+			}
+
+			context.convertLocalToActivationObject(activationObject);
+		}
 
 		for (DVariable var: varmap.values())
 		{
@@ -1176,7 +1198,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 */
 	public Value getValue(long valueId) throws NotSuspendedException, NoResponseException, NotConnectedException
 	{
-		DValue val;
+		DValue val = null;
 
 		if (!isSuspended())
 			throw new NotSuspendedException();
@@ -1401,7 +1423,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 * $obj(), and if so, handles that directly rather than calling the player.  Returns
 	 * null if the function being called is not a pseudofunction.
 	 */
-	private Value callPseudoFunction(Value thisValue, String funcname, Value[] args) {
+	private Value callPseudoFunction(Value thisValue, String funcname, Value[] args) throws PlayerDebugException{
 		if (thisValue.getType() == VariableType.UNDEFINED || thisValue.getType() == VariableType.NULL) {
 			if ("$obj".equals(funcname)) { //$NON-NLS-1$
 				return callObjPseudoFunction(args);
@@ -1415,7 +1437,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 * Handles a call to the debugger pseudofunction $obj() -- e.g. $obj(1234) returns
 	 * a pointer to the object with id 1234.
 	 */
-	private Value callObjPseudoFunction(Value[] args) {
+	private Value callObjPseudoFunction(Value[] args) throws PlayerDebugException {
 		if (args.length != 1) {
 			return DValue.forPrimitive(DValue.UNDEFINED);
 		}
@@ -1627,7 +1649,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 		// convert type to typeName
 		String type = DVariable.typeNameFor(t);
 		DMessage dm = buildOutSetMessage(id, name, type, value);
-		FaultEvent faultEvent;
+		FaultEvent faultEvent = null;
 //		System.out.println("setmsg id="+id+",name="+name+",t="+type+",value="+value);
 
 		// make sure any exception during the setter gets held onto
@@ -1712,7 +1734,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 * @throws NotSupportedException
 	 * @throws NotSuspendedException
 	 */
-    boolean addWatch(long varId, String varName, int type, int tag) throws NotSupportedException
+	public boolean addWatch(long varId, String varName, int type, int tag) throws NoResponseException, NotConnectedException, NotSupportedException
 	{
 		// TODO check for NoResponse, NotConnected
 
@@ -1728,7 +1750,8 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 		dm.putWord(tag);
 
 		int timeout = getPreference(SessionManager.PREF_GETVAR_RESPONSE_TIMEOUT);
-		return simpleRequestResponseMessage(dm, DMessage.InWatch2, timeout);
+		boolean result = simpleRequestResponseMessage(dm, DMessage.InWatch2, timeout);
+		return result;
 	}
 
 	/**
@@ -1737,7 +1760,8 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 * @throws NoResponseException
 	 * @throws NotSuspendedException
 	 */
-    boolean removeWatch(long varId, String memberName) {
+	public boolean removeWatch(long varId, String memberName) throws NoResponseException, NotConnectedException
+	{
 		memberName = getRawMemberName(varId, memberName);
 		DMessage dm = DMessageCache.alloc(DMessage.getSizeofPtr()+DMessage.getStringLength(memberName)+1);
 		dm.setType(DMessage.OutRemoveWatch2);
@@ -1745,7 +1769,8 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 		try { dm.putString(memberName); } catch(UnsupportedEncodingException uee) { dm.putByte((byte)'\0'); }
 
 		int timeout = getPreference(SessionManager.PREF_GETVAR_RESPONSE_TIMEOUT);
-		return simpleRequestResponseMessage(dm, DMessage.InWatch2, timeout);
+		boolean result = simpleRequestResponseMessage(dm, DMessage.InWatch2, timeout);
+		return result;
 	}
 
 	/**
@@ -1889,27 +1914,27 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	public boolean supportsWatchpoints()
 	{
 		if (m_playerSupportsWatchpoints == null)
-			m_playerSupportsWatchpoints = getOption("can_set_watchpoints", false); //$NON-NLS-1$
-		return m_playerSupportsWatchpoints;
+			m_playerSupportsWatchpoints = new Boolean(getOption("can_set_watchpoints", false)); //$NON-NLS-1$
+		return m_playerSupportsWatchpoints.booleanValue();
 	}
 
-	boolean playerCanBreakOnAllExceptions()
+	public boolean playerCanBreakOnAllExceptions()
 	{
 		if (m_playerCanBreakOnAllExceptions == null)
-			m_playerCanBreakOnAllExceptions = getOption("can_break_on_all_exceptions", false); //$NON-NLS-1$
-		return m_playerCanBreakOnAllExceptions;
+			m_playerCanBreakOnAllExceptions = new Boolean(getOption("can_break_on_all_exceptions", false)); //$NON-NLS-1$
+		return m_playerCanBreakOnAllExceptions.booleanValue();
 	}
 
-	boolean playerCanTerminate()
+	public boolean playerCanTerminate()
 	{
 		return getOption("can_terminate", false); //$NON-NLS-1$
 	}
 
-	boolean playerCanCallFunctions()
+	public boolean playerCanCallFunctions()
 	{
 		if (m_playerCanCallFunctions == null)
-			m_playerCanCallFunctions = getOption("can_call_functions", false); //$NON-NLS-1$
-		return m_playerCanCallFunctions;
+			m_playerCanCallFunctions = new Boolean(getOption("can_call_functions", false)); //$NON-NLS-1$
+		return m_playerCanCallFunctions.booleanValue();
 	}
 
 	/**
@@ -1920,13 +1945,13 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 *            the name of the option
 	 * @return its value, or null
 	 */
-    boolean getOption(String optionName, boolean defaultValue)
+	public boolean getOption(String optionName, boolean defaultValue)
 	{
 		boolean retval = defaultValue;
 		String optionValue = getOption(optionName, null);
 
 		if (optionValue != null)
-			retval = Boolean.valueOf(optionValue);
+			retval = Boolean.valueOf(optionValue).booleanValue();
 
 		return retval;
 	}
@@ -1939,7 +1964,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	 *            the name of the option
 	 * @return its value, or null
 	 */
-    String getOption(String optionName, String defaultValue)
+	public String getOption(String optionName, String defaultValue)
 	{
 		String optionValue = defaultValue;
 
@@ -2169,7 +2194,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 		while(isConnected())
 		{
 			// try every 250ms
-			try { Thread.sleep(250); } catch(InterruptedException ignored) {}
+			try { Thread.sleep(250); } catch(InterruptedException ie) {}
 
 			try
 			{
@@ -2274,7 +2299,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	{
 		/* send the message */
 		int to = getPreference(SessionManager.PREF_SWFSWD_LOAD_TIMEOUT);
-		byte[] swf;
+		byte[] swf = null;
 
 		// the query
 		DMessage dm = DMessageCache.alloc(2);
@@ -2293,7 +2318,7 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 	{
 		/* send the message */
 		int to = getPreference(SessionManager.PREF_SWFSWD_LOAD_TIMEOUT);
-		byte[] swd;
+		byte[] swd = null;
 
 		// the query
 		DMessage dm = DMessageCache.alloc(2);
@@ -2326,11 +2351,11 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 				m_trace.flush();
 			}
 		}
-		catch(Exception ignored) {}
+		catch(Exception e) {}
 	}
 
 	// i/o for tracing
-    private java.io.Writer m_trace;
+    java.io.Writer m_trace;
 
 	java.io.Writer traceFile() throws IOException
 	{
@@ -2415,11 +2440,11 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 		Boolean retval = m_evalIsAndInstanceofCache.get(key);
 		if (retval == null)
 		{
-			retval = ECMA.toBoolean(evalBinaryOp(op, value, type));
+			retval = new Boolean(ECMA.toBoolean(evalBinaryOp(op, value, type)));
 			m_evalIsAndInstanceofCache.put(key, retval);
 		}
 
-		return retval;
+		return retval.booleanValue();
 	}
 
 	private boolean evalIsOrInstanceof(BinaryOp op, Value value, String type) throws PlayerDebugException, PlayerFaultException
@@ -2432,11 +2457,11 @@ public class PlayerSession implements Session, DProtocolNotifierIF, Runnable
 			if (typeval == null)
 				retval = Boolean.FALSE;
 			else
-				retval = ECMA.toBoolean(evalBinaryOp(op, value, typeval));
+				retval = new Boolean(ECMA.toBoolean(evalBinaryOp(op, value, typeval)));
 			m_evalIsAndInstanceofCache.put(key, retval);
 		}
 
-		return retval;
+		return retval.booleanValue();
 	}
 
 	public boolean evalIn(Value property, Value object) throws PlayerDebugException, PlayerFaultException

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSessionManager.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSessionManager.java b/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSessionManager.java
index f51f231..a5e48dd 100644
--- a/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSessionManager.java
+++ b/modules/debugger/src/java/flash/tools/debugger/concrete/PlayerSessionManager.java
@@ -54,9 +54,9 @@ import flash.util.URLHelper;
 public class PlayerSessionManager implements SessionManager2
 {
 	private ServerSocket m_serverSocket;
-	private final HashMap<String, Object> m_prefs;
+	private HashMap<String, Object> m_prefs;
 	private IDebuggerCallbacks m_debuggerCallbacks;
-	private static final LocalizationManager m_localizationManager;
+	private static LocalizationManager m_localizationManager;
 	private Socket m_connectSocket;
 	private boolean m_cancelConnect;
 	
@@ -107,7 +107,7 @@ public class PlayerSessionManager implements SessionManager2
 	 * Set preference 
 	 * If an invalid preference is passed, it will be silently ignored.
 	 */
-	public void			setPreference(String pref, int value)	{ m_prefs.put(pref, value); }
+	public void			setPreference(String pref, int value)	{ m_prefs.put(pref, new Integer(value)); }
 	public void			setPreference(String pref, String value){ m_prefs.put(pref, value);	}
 	public Set<String>	keySet()								{ return m_prefs.keySet(); }
 	public Object		getPreferenceAsObject(String pref)		{ return m_prefs.get(pref); }
@@ -117,11 +117,11 @@ public class PlayerSessionManager implements SessionManager2
 	 */
 	public int getPreference(String pref)
 	{
-		int val;
+		int val = 0;
 		Integer i = (Integer)m_prefs.get(pref);
 		if (i == null)
 			throw new NullPointerException();
-		val = i;
+		val = i.intValue();
 		return val;
 	}
 
@@ -151,12 +151,12 @@ public class PlayerSessionManager implements SessionManager2
 	 */
 	public boolean isListening()
 	{
-		return (m_serverSocket != null);
+		return (m_serverSocket == null) ? false : true;
 	}
 
 	private class LaunchInfo
 	{
-		private final String m_uri;
+		private String m_uri;
 
 		public LaunchInfo(String uri)
 		{
@@ -239,7 +239,7 @@ public class PlayerSessionManager implements SessionManager2
 			launchCommand = getAIRLaunchArgs(uri, airLaunchInfo);
 		}
 
-		ProcessListener pl;
+		ProcessListener pl = null; 
 		PlayerSession session = null;
 
 		// create the process and attach a thread to watch it during our accept phase
@@ -285,7 +285,7 @@ public class PlayerSessionManager implements SessionManager2
 			launchCommand = getAIRLaunchArgs(uri, airLaunchInfo);
 		}
 
-		ProcessListener pl;
+		ProcessListener pl = null; 
 
 		// create the process and attach a thread to watch it during our accept phase
 		Process proc = m_debuggerCallbacks.launchDebugTarget(launchCommand);
@@ -307,7 +307,8 @@ public class PlayerSessionManager implements SessionManager2
 	 * Tweaks the launch URI if necessary, e.g. may append "?debug=true"
 	 */
 	private String tweakNativeLaunchUri(String uri, boolean forDebugging,
-			LaunchInfo launchInfo) throws IOException {
+			LaunchInfo launchInfo) throws IOException, FileNotFoundException
+	{
 		// first let's see if it's an HTTP URL or not
 		if (launchInfo.isHttpOrAbout())
 		{
@@ -331,7 +332,7 @@ public class PlayerSessionManager implements SessionManager2
 		{
 			// ok, its not an http: type request therefore we should be able to see
 			// it on the file system, right?  If not then it's probably not valid
-			File f;
+			File f = null;
 			if (uri.startsWith("file:")) //$NON-NLS-1$
 			{
 				try
@@ -350,7 +351,7 @@ public class PlayerSessionManager implements SessionManager2
 				f = new File(uri);
 			}
 
-			if (f.exists()) {
+			if (f != null && f.exists()) {
 				// Do not use getCanonicalPath() -- see FB-24595
 				uri = f.getAbsolutePath();
 			} else {
@@ -395,7 +396,9 @@ public class PlayerSessionManager implements SessionManager2
 					launchCommand[1] = "-a";
 					launchCommand[2] = httpExe.toString();
 					launchCommand[3] = "--args";
-                    System.arraycopy(customParams, 0, launchCommand, 4, customParams.length);
+					for ( int i = 0; i < customParams.length; i++) {
+						launchCommand[i + prependLen] = customParams[i];
+					}
 				}
 			}
 			else if (launchInfo.isPlayerNativeLaunch())
@@ -424,7 +427,9 @@ public class PlayerSessionManager implements SessionManager2
 					final int prependLen = 1;
 					launchCommand = new String[customParams.length + prependLen];
 					launchCommand[0] = httpExe.toString();
-                    System.arraycopy(customParams, 0, launchCommand, 1, customParams.length);
+					for ( int i = 0; i < customParams.length; i++) {
+						launchCommand[i + prependLen] = customParams[i];
+					}
 				}
 			}
 			else if (launchInfo.isPlayerNativeLaunch())
@@ -472,11 +477,16 @@ public class PlayerSessionManager implements SessionManager2
 		{
 			boolean isIE8 = false;
 
-            int[] ieVersion = m_debuggerCallbacks.getAppVersion(httpExe);
-            if (ieVersion != null)
-                isIE8 = (ieVersion[0] >= 8);
+			try
+			{
+				int[] ieVersion = m_debuggerCallbacks.getAppVersion(httpExe);
+				if (ieVersion != null)
+					isIE8 = (ieVersion[0] >= 8);
+			} catch (IOException e) {
+				// ignore
+			}
 
-            if (isIE8)
+			if (isIE8)
 			{
 				// FB-22107: Tell IE to keep using the new process we are
 				// launching, rather than merging the new process into the
@@ -557,7 +567,7 @@ public class PlayerSessionManager implements SessionManager2
 		// If it's a "file:" URL, then pass the actual filename; otherwise, use the URL
 		// ok, its not an http: type request therefore we should be able to see
 		// it on the file system, right?  If not then it's probably not valid
-		File f;
+		File f = null;
 		if (uri.startsWith("file:")) //$NON-NLS-1$
 		{
 			try
@@ -631,7 +641,8 @@ public class PlayerSessionManager implements SessionManager2
 				// keep looping
 				i++;
 			} else if (ch == '"' || (isMacOrUnix && ch == '\'')) {
-				int nextQuote = arguments.indexOf(ch, i+1);
+				char quote = ch;
+				int nextQuote = arguments.indexOf(quote, i+1);
 				if (nextQuote == -1) {
 					retval.add(arguments.substring(i+1));
 					return retval;
@@ -777,15 +788,19 @@ public class PlayerSessionManager implements SessionManager2
 		// they don't agree with that -- they want HKEY_LOCAL_MACHINE first.
 
 		String[] roots = { "HKEY_LOCAL_MACHINE", "HKEY_CURRENT_USER" }; //$NON-NLS-1$ //$NON-NLS-2$
-        for (String root : roots) {
-            try {
-                String path = m_debuggerCallbacks.queryWindowsRegistry(root + KEY, PATH);
-                if (path != null)
-                    return new File(path);
-            } catch (IOException e) {
-                // ignore
-            }
-        }
+		for (int i=0; i<roots.length; ++i)
+		{
+			try
+			{
+				String path = m_debuggerCallbacks.queryWindowsRegistry(roots[i] + KEY, PATH);
+				if (path != null)
+					return  new File(path);
+			}
+			catch (IOException e)
+			{
+				// ignore
+			}
+		}
 
 		return null;
 	}
@@ -823,7 +838,7 @@ public class PlayerSessionManager implements SessionManager2
 		int totalTimeout = timeout;
 		int iterateOn = 100;
 
-		PlayerSession session;
+		PlayerSession session = null;
 		try
 		{
 			m_serverSocket.setSoTimeout(iterateOn);
@@ -1107,7 +1122,7 @@ public class PlayerSessionManager implements SessionManager2
 	 */
 	public boolean isConnecting()
 	{
-		return (m_connectSocket != null);
+		return (m_connectSocket == null) ? false : true;
 	}
 	
 	/**

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/concrete/ProcessListener.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/concrete/ProcessListener.java b/modules/debugger/src/java/flash/tools/debugger/concrete/ProcessListener.java
index 3d26786..f711a05 100644
--- a/modules/debugger/src/java/flash/tools/debugger/concrete/ProcessListener.java
+++ b/modules/debugger/src/java/flash/tools/debugger/concrete/ProcessListener.java
@@ -34,21 +34,21 @@ import flash.tools.debugger.ILaunchNotification;
  * When a process exits, the ProcessListener can send out a notification.  If
  * you want that to happen, call startLaunchNotifier().
  */
-class ProcessListener
+public class ProcessListener
 {
-	private final Process					m_process;
-	private final ILaunchNotification		m_launchNotification;
-	private final boolean					m_isDebugging;
-	private final boolean					m_isAIRapp;
+	private Process					m_process;
+	private ILaunchNotification		m_launchNotification;
+	private boolean					m_isDebugging;
+	private boolean					m_isAIRapp;
 	private final String[]			m_launchCommand;
-	private final StringWriter			m_processMessages;
+	private StringWriter			m_processMessages;
 	private boolean 				m_isRunLaunch;
 
 	/**
 	 * A background thread that will wait until the process terminates, and then
 	 * call the launch listener.
 	 */
-	private final Thread m_launchNotifierThread = new Thread("DJAPI ProcessListener") //$NON-NLS-1$
+	private Thread m_launchNotifierThread = new Thread("DJAPI ProcessListener") //$NON-NLS-1$
 	{
 		public void run()
 		{
@@ -116,7 +116,7 @@ class ProcessListener
 	/**
 	 * Returns the command args that were used to launch the process.
 	 */
-    String[] getLaunchCommand()
+	public String[] getLaunchCommand()
 	{
 		return m_launchCommand;
 	}
@@ -137,7 +137,7 @@ class ProcessListener
 		}
 	}
 
-	int getProcessExitValue() throws IllegalThreadStateException
+	public int getProcessExitValue() throws IllegalThreadStateException
 	{
 		return m_process.exitValue();
 	}
@@ -146,7 +146,7 @@ class ProcessListener
 	 * Returns all messages that were sent to stdout and stderr by the process,
 	 * combined into one string.
 	 */
-    String getProcessMessages()
+	public String getProcessMessages()
 	{
 		return m_processMessages.toString();
 	}

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/concrete/ScriptText.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/concrete/ScriptText.java b/modules/debugger/src/java/flash/tools/debugger/concrete/ScriptText.java
index 6016f5b..18c9fb7 100644
--- a/modules/debugger/src/java/flash/tools/debugger/concrete/ScriptText.java
+++ b/modules/debugger/src/java/flash/tools/debugger/concrete/ScriptText.java
@@ -46,7 +46,8 @@ public class ScriptText
 		int start = m_lineMap[2*index];
 		int end = m_lineMap[(2*index)+1];
 
-		return m_text.substring(start, end);
+		String s = m_text.substring(start, end);
+		return s;
 	}
 
 	/* line count in module */
@@ -135,7 +136,7 @@ public class ScriptText
 	/**
 	 * Count the number of lines within this string.
 	 */
-	private static int lineCountFor(String s)
+	public static int lineCountFor(String s)
 	{
 		int i = 0;
 		int lineNum = 0;

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/concrete/StreamListener.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/concrete/StreamListener.java b/modules/debugger/src/java/flash/tools/debugger/concrete/StreamListener.java
index f43ea58..0579556 100644
--- a/modules/debugger/src/java/flash/tools/debugger/concrete/StreamListener.java
+++ b/modules/debugger/src/java/flash/tools/debugger/concrete/StreamListener.java
@@ -27,9 +27,9 @@ import java.io.Writer;
  * Reads a stream, and sends the contents somewhere.
  * @author mmoreart
  */
-class StreamListener extends Thread {
-	private final Reader fIn;
-	private final Writer fOut;
+public class StreamListener extends Thread {
+	Reader fIn;
+	Writer fOut;
 
 	/**
 	 * Creates a StreamListener which will copy everything from

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/events/BreakEvent.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/events/BreakEvent.java b/modules/debugger/src/java/flash/tools/debugger/events/BreakEvent.java
index 360a274..7436434 100644
--- a/modules/debugger/src/java/flash/tools/debugger/events/BreakEvent.java
+++ b/modules/debugger/src/java/flash/tools/debugger/events/BreakEvent.java
@@ -25,10 +25,10 @@ package flash.tools.debugger.events;
 public class BreakEvent extends DebugEvent
 {
 	/** unique identifier for the source file where the Player has suspened. */
-	private final int fileId;
+	public int fileId;
 
 	/** line number in the source file where the Player has suspended. */
-	private final int line;
+	public int line;
 
 	public BreakEvent(int fId, int l)
 	{

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/events/ConsoleErrorFault.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/events/ConsoleErrorFault.java b/modules/debugger/src/java/flash/tools/debugger/events/ConsoleErrorFault.java
index 61fad62..ef23021 100644
--- a/modules/debugger/src/java/flash/tools/debugger/events/ConsoleErrorFault.java
+++ b/modules/debugger/src/java/flash/tools/debugger/events/ConsoleErrorFault.java
@@ -24,7 +24,7 @@ package flash.tools.debugger.events;
  */
 public class ConsoleErrorFault extends FaultEvent
 {
-	private final static String name = "console_error";  //$NON-NLS-1$
+	public final static String name = "console_error";  //$NON-NLS-1$
 
 	public ConsoleErrorFault(String s) { super(s); }
 

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/events/DebugEvent.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/events/DebugEvent.java b/modules/debugger/src/java/flash/tools/debugger/events/DebugEvent.java
index dedc5ab..ef474eb 100644
--- a/modules/debugger/src/java/flash/tools/debugger/events/DebugEvent.java
+++ b/modules/debugger/src/java/flash/tools/debugger/events/DebugEvent.java
@@ -24,8 +24,8 @@ package flash.tools.debugger.events;
  */
 public abstract class DebugEvent
 {
-	public final String information;
+	public String information;
 
-	DebugEvent()					{ information = ""; } //$NON-NLS-1$
-	DebugEvent(String info)		{ information = info; }
+	public DebugEvent()					{ information = ""; } //$NON-NLS-1$
+	public DebugEvent(String info)		{ information = info; }
 }

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/events/FaultEvent.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/events/FaultEvent.java b/modules/debugger/src/java/flash/tools/debugger/events/FaultEvent.java
index 9430761..9c2d5ae 100644
--- a/modules/debugger/src/java/flash/tools/debugger/events/FaultEvent.java
+++ b/modules/debugger/src/java/flash/tools/debugger/events/FaultEvent.java
@@ -30,7 +30,7 @@ public abstract class FaultEvent extends DebugEvent
 {
 	private String stackTrace = ""; //$NON-NLS-1$
 
-	FaultEvent(String info)
+	public FaultEvent(String info)
 	{
 		super(getFirstLine(info));
 		int newline = info.indexOf('\n');
@@ -38,7 +38,7 @@ public abstract class FaultEvent extends DebugEvent
 			stackTrace = info.substring(newline+1);
 	}
 
-	FaultEvent()
+	public FaultEvent()
 	{
 		super();
 	}

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/events/SwfLoadedEvent.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/events/SwfLoadedEvent.java b/modules/debugger/src/java/flash/tools/debugger/events/SwfLoadedEvent.java
index c8e8628..32146a7 100644
--- a/modules/debugger/src/java/flash/tools/debugger/events/SwfLoadedEvent.java
+++ b/modules/debugger/src/java/flash/tools/debugger/events/SwfLoadedEvent.java
@@ -26,25 +26,25 @@ package flash.tools.debugger.events;
 public class SwfLoadedEvent extends DebugEvent
 {
 	/** unique identifier for the SWF */
-	private final long id;
+	public long id;				
 
 	/** index of swf in Session.getSwfs() array */
-	private final int index;
+	public int index;
 
 	/** full path name for  SWF */
-	public final String path;
+	public String path;
 
 	/** size of the loaded SWF in bytes */
-	public final long swfSize;
+	public long swfSize;
 
 	/** URL of the loaded SWF */
-	private final String url;
+	public String url;
 
 	/** port number related to the URL */
-	private final long port;
+	public long port;
 
 	/** name of host in which the SWF was loaded */
-	private final String host;
+	public String host;
 
 	public SwfLoadedEvent(long sId, int sIndex, String sPath, String sUrl, String sHost, long sPort, long sSwfSize)
 	{

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/events/SwfUnloadedEvent.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/events/SwfUnloadedEvent.java b/modules/debugger/src/java/flash/tools/debugger/events/SwfUnloadedEvent.java
index bad5ee6..beeb361 100644
--- a/modules/debugger/src/java/flash/tools/debugger/events/SwfUnloadedEvent.java
+++ b/modules/debugger/src/java/flash/tools/debugger/events/SwfUnloadedEvent.java
@@ -25,13 +25,13 @@ package flash.tools.debugger.events;
 public class SwfUnloadedEvent extends DebugEvent
 {
 	/** unique identifier for the SWF */
-	private final long			id;
+	public long			id;
 
 	/** index of SWF in Session.getSwfs() array */
-	private final int			index;
+	public int			index;
 
 	/** full path name for the SWF */
-	public final String		path;
+	public String		path;
 
 	public SwfUnloadedEvent(long sId, String sPath, int sIndex)
 	{

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/expression/ASTBuilder.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/expression/ASTBuilder.java b/modules/debugger/src/java/flash/tools/debugger/expression/ASTBuilder.java
index 5794ca4..5ef4583 100644
--- a/modules/debugger/src/java/flash/tools/debugger/expression/ASTBuilder.java
+++ b/modules/debugger/src/java/flash/tools/debugger/expression/ASTBuilder.java
@@ -49,7 +49,7 @@ import flash.tools.debugger.DebuggerLocalizer;
  */
 public class ASTBuilder implements IASTBuilder
 {
-	private static final LocalizationManager s_localizationManager;
+	private static LocalizationManager s_localizationManager;
 
 	/**
 	 * whether the fdb indirection operators are allowed, e.g. asterisk (*x) or
@@ -78,7 +78,7 @@ public class ASTBuilder implements IASTBuilder
 	 * @return whether the fdb indirection operators are allowed, e.g. asterisk
 	 *         (*x) or trailing dot (x.)
 	 */
-    boolean isIndirectionOperatorAllowed()
+	public boolean isIndirectionOperatorAllowed()
 	{
 		return m_isIndirectionOperatorAllowed;
 	}

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/expression/DebuggerEvaluator.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/expression/DebuggerEvaluator.java b/modules/debugger/src/java/flash/tools/debugger/expression/DebuggerEvaluator.java
index 7e97887..97302ba 100644
--- a/modules/debugger/src/java/flash/tools/debugger/expression/DebuggerEvaluator.java
+++ b/modules/debugger/src/java/flash/tools/debugger/expression/DebuggerEvaluator.java
@@ -56,7 +56,7 @@ class DebuggerEvaluator implements Evaluator
 	 */
 	public static class DebuggerValue extends Value
 	{
-		public final Object debuggerValue;
+		public Object debuggerValue;
 
 		public DebuggerValue(Object v)
 		{
@@ -74,7 +74,7 @@ class DebuggerEvaluator implements Evaluator
 			this.expressionEvaluatorContext = expressionEvaluatorContext;
 		}
 
-		public final Context expressionEvaluatorContext;
+		public Context expressionEvaluatorContext;
 	}
 
 	private Context eeContext(macromedia.asc.util.Context cx)
@@ -116,16 +116,16 @@ class DebuggerEvaluator implements Evaluator
 				after = before + 1;
 			}
 
-			debuggerContext.assign(memberName, debuggerContext.toValue(after));
+			debuggerContext.assign(memberName, debuggerContext.toValue(new Double(after)));
 
 			Object result;
 			if (node.isPostfix)
 			{
-				result = before;
+				result = new Double(before);
 			}
 			else
 			{
-				result = after;
+				result = new Double(after);
 			}
 
 			return new DebuggerValue(result);
@@ -189,7 +189,7 @@ class DebuggerEvaluator implements Evaluator
 
 	public Value evaluate(macromedia.asc.util.Context cx, LiteralBooleanNode node)
 	{
-		return new DebuggerValue(node.value);
+		return new DebuggerValue(new Boolean(node.value));
 	}
 
 	public Value evaluate(macromedia.asc.util.Context cx, LiteralNumberNode node)
@@ -496,8 +496,11 @@ class DebuggerEvaluator implements Evaluator
 		} else if (context != null && index != null) {
 			//Resolve the Value to see if it is a Number
 			flash.tools.debugger.Value value = context.toValue(index);
-            return value != null && value.getType() == VariableType.NUMBER;
-        }
+			if (value != null && value.getType() == VariableType.NUMBER) {
+				return true;
+			}
+			return false;
+		}		
 		else {
 			return false;
 		}
@@ -555,7 +558,7 @@ class DebuggerEvaluator implements Evaluator
 		else if (contextValue != null && contextValue.getType() == VariableType.STRING && name.equals("length")) //$NON-NLS-1$
 		{
 			String valuestr = contextValue.getValueAsString();
-			return new DebuggerValue((double) valuestr.length());
+			return new DebuggerValue(new Double(valuestr.length()));
 		}
 		else
 		{
@@ -577,7 +580,7 @@ class DebuggerEvaluator implements Evaluator
 		}
 	}
 
-	Value getOrSet(macromedia.asc.util.Context cx, SelectorNode node)
+	public Value getOrSet(macromedia.asc.util.Context cx, SelectorNode node)
 	{
 		assert (node.getMode() == Tokens.LEFTBRACKET_TOKEN || // base[expr]
 				node.getMode() == Tokens.LEFTPAREN_TOKEN || // base.(expr)
@@ -677,25 +680,25 @@ class DebuggerEvaluator implements Evaluator
 		case Tokens.PLUS_TOKEN:
 		{
 			// ECMA 11.4.6
-			return new DebuggerValue(ECMA.toNumber(eeContext(cx).getSession(), eeContext(cx).toValue(
-                    arg.debuggerValue)));
+			return new DebuggerValue(new Double(ECMA.toNumber(eeContext(cx).getSession(), eeContext(cx).toValue(
+					arg.debuggerValue))));
 		}
 		case Tokens.MINUS_TOKEN:
 		{
 			// ECMA 11.4.7
-			return new DebuggerValue(-ECMA.toNumber(eeContext(cx).getSession(), eeContext(cx).toValue(
-                    arg.debuggerValue)));
+			return new DebuggerValue(new Double(-ECMA.toNumber(eeContext(cx).getSession(), eeContext(cx).toValue(
+					arg.debuggerValue))));
 		}
 		case Tokens.BITWISENOT_TOKEN:
 		{
 			// ECMA 11.4.8
-			return new DebuggerValue((double) ~ECMA.toInt32(eeContext(cx).getSession(), eeContext(cx).toValue(
-                    arg.debuggerValue)));
+			return new DebuggerValue(new Double(~ECMA.toInt32(eeContext(cx).getSession(), eeContext(cx).toValue(
+					arg.debuggerValue))));
 		}
 		case Tokens.NOT_TOKEN:
 		{
 			// ECMA 11.4.9
-			return new DebuggerValue(!ECMA.toBoolean(eeContext(cx).toValue(arg.debuggerValue)));
+			return new DebuggerValue(new Boolean(!ECMA.toBoolean(eeContext(cx).toValue(arg.debuggerValue))));
 		}
 		default:
 			cx.internalError(ASTBuilder.getLocalizationManager().getLocalizedTextString("unrecognizedUnaryOperator")); //$NON-NLS-1$
@@ -723,21 +726,21 @@ class DebuggerEvaluator implements Evaluator
 			// ECMA 11.5
 			double d1 = ECMA.toNumber(session, eeContext.toValue(lhs.debuggerValue));
 			double d2 = ECMA.toNumber(session, eeContext.toValue(rhs.debuggerValue));
-			return new DebuggerValue(d1 * d2);
+			return new DebuggerValue(new Double(d1 * d2));
 		}
 		case Tokens.DIV_TOKEN:
 		{
 			// ECMA 11.5
 			double d1 = ECMA.toNumber(session, eeContext.toValue(lhs.debuggerValue));
 			double d2 = ECMA.toNumber(session, eeContext.toValue(rhs.debuggerValue));
-			return new DebuggerValue(d1 / d2);
+			return new DebuggerValue(new Double(d1 / d2));
 		}
 		case Tokens.MODULUS_TOKEN:
 		{
 			// ECMA 11.5
 			double d1 = ECMA.toNumber(session, eeContext.toValue(lhs.debuggerValue));
 			double d2 = ECMA.toNumber(session, eeContext.toValue(rhs.debuggerValue));
-			return new DebuggerValue(d1 % d2);
+			return new DebuggerValue(new Double(d1 % d2));
 		}
 		case Tokens.PLUS_TOKEN:
 		{
@@ -790,7 +793,7 @@ class DebuggerEvaluator implements Evaluator
 				}
 				else
 				{
-					return new DebuggerValue(ECMA.toNumber(session, v1) + ECMA.toNumber(session, v2));
+					return new DebuggerValue(new Double(ECMA.toNumber(session, v1) + ECMA.toNumber(session, v2)));
 				}
 			}
 		}
@@ -799,28 +802,28 @@ class DebuggerEvaluator implements Evaluator
 			// ECMA 11.6.2
 			double d1 = ECMA.toNumber(session, eeContext.toValue(lhs.debuggerValue));
 			double d2 = ECMA.toNumber(session, eeContext.toValue(rhs.debuggerValue));
-			return new DebuggerValue(d1 - d2);
+			return new DebuggerValue(new Double(d1 - d2));
 		}
 		case Tokens.LEFTSHIFT_TOKEN:
 		{
 			// ECMA 11.7.1
 			int n1 = ECMA.toInt32(session, eeContext.toValue(lhs.debuggerValue));
 			int n2 = (int) (ECMA.toUint32(session, eeContext.toValue(rhs.debuggerValue)) & 0x1F);
-			return new DebuggerValue((double) (n1 << n2));
+			return new DebuggerValue(new Double(n1 << n2));
 		}
 		case Tokens.RIGHTSHIFT_TOKEN:
 		{
 			// ECMA 11.7.1
 			int n1 = ECMA.toInt32(session, eeContext.toValue(lhs.debuggerValue));
 			int n2 = (int) (ECMA.toUint32(session, eeContext.toValue(rhs.debuggerValue)) & 0x1F);
-			return new DebuggerValue((double) (n1 >> n2));
+			return new DebuggerValue(new Double(n1 >> n2));
 		}
 		case Tokens.UNSIGNEDRIGHTSHIFT_TOKEN:
 		{
 			// ECMA 11.7.1
 			long n1 = ECMA.toUint32(session, eeContext.toValue(lhs.debuggerValue));
 			long n2 = (ECMA.toUint32(session, eeContext.toValue(rhs.debuggerValue)) & 0x1F);
-			return new DebuggerValue((double) (n1 >>> n2));
+			return new DebuggerValue(new Double(n1 >>> n2));
 		}
 		case Tokens.LESSTHAN_TOKEN:
 		{
@@ -828,7 +831,14 @@ class DebuggerEvaluator implements Evaluator
 			flash.tools.debugger.Value lessThan = ECMA.lessThan(session, eeContext.toValue(lhs.debuggerValue), eeContext
 					.toValue(rhs.debuggerValue));
 			boolean result;
-            result = lessThan.getType() != VariableType.UNDEFINED && ECMA.toBoolean(lessThan);
+			if (lessThan.getType() == VariableType.UNDEFINED)
+			{
+				result = false;
+			}
+			else
+			{
+				result = ECMA.toBoolean(lessThan);
+			}
 			return new DebuggerValue(result);
 		}
 		case Tokens.GREATERTHAN_TOKEN:
@@ -837,7 +847,14 @@ class DebuggerEvaluator implements Evaluator
 			flash.tools.debugger.Value greaterThan = ECMA.lessThan(session, eeContext.toValue(rhs.debuggerValue), eeContext
 					.toValue(lhs.debuggerValue));
 			boolean result;
-            result = greaterThan.getType() != VariableType.UNDEFINED && ECMA.toBoolean(greaterThan);
+			if (greaterThan.getType() == VariableType.UNDEFINED)
+			{
+				result = false;
+			}
+			else
+			{
+				result = ECMA.toBoolean(greaterThan);
+			}
 			return new DebuggerValue(result);
 		}
 		case Tokens.LESSTHANOREQUALS_TOKEN:
@@ -846,7 +863,14 @@ class DebuggerEvaluator implements Evaluator
 			flash.tools.debugger.Value lessThan = ECMA.lessThan(session, eeContext.toValue(rhs.debuggerValue), eeContext
 					.toValue(lhs.debuggerValue));
 			boolean result;
-            result = lessThan.getType() != VariableType.UNDEFINED && !ECMA.toBoolean(lessThan);
+			if (lessThan.getType() == VariableType.UNDEFINED)
+			{
+				result = false;
+			}
+			else
+			{
+				result = !ECMA.toBoolean(lessThan);
+			}
 			return new DebuggerValue(result);
 		}
 		case Tokens.GREATERTHANOREQUALS_TOKEN:
@@ -855,7 +879,14 @@ class DebuggerEvaluator implements Evaluator
 			flash.tools.debugger.Value lessThan = ECMA.lessThan(session, eeContext.toValue(lhs.debuggerValue), eeContext
 					.toValue(rhs.debuggerValue));
 			boolean result;
-            result = lessThan.getType() != VariableType.UNDEFINED && !ECMA.toBoolean(lessThan);
+			if (lessThan.getType() == VariableType.UNDEFINED)
+			{
+				result = false;
+			}
+			else
+			{
+				result = !ECMA.toBoolean(lessThan);
+			}
 			return new DebuggerValue(result);
 		}
 		case Tokens.INSTANCEOF_TOKEN:
@@ -901,44 +932,44 @@ class DebuggerEvaluator implements Evaluator
 		case Tokens.EQUALS_TOKEN:
 		{
 			// ECMA 11.9.1
-			return new DebuggerValue(ECMA.equals(session, eeContext.toValue(lhs.debuggerValue), eeContext
-                    .toValue(rhs.debuggerValue)));
+			return new DebuggerValue(new Boolean(ECMA.equals(session, eeContext.toValue(lhs.debuggerValue), eeContext
+					.toValue(rhs.debuggerValue))));
 		}
 		case Tokens.NOTEQUALS_TOKEN:
 		{
 			// ECMA 11.9.2
-			return new DebuggerValue(!ECMA.equals(session, eeContext.toValue(lhs.debuggerValue), eeContext
-                    .toValue(rhs.debuggerValue)));
+			return new DebuggerValue(new Boolean(!ECMA.equals(session, eeContext.toValue(lhs.debuggerValue), eeContext
+					.toValue(rhs.debuggerValue))));
 		}
 		case Tokens.STRICTEQUALS_TOKEN:
 		{
 			// ECMA 11.9.4
-			return new DebuggerValue(ECMA.strictEquals(eeContext.toValue(lhs.debuggerValue), eeContext
-                    .toValue(rhs.debuggerValue)));
+			return new DebuggerValue(new Boolean(ECMA.strictEquals(eeContext.toValue(lhs.debuggerValue), eeContext
+					.toValue(rhs.debuggerValue))));
 		}
 		case Tokens.STRICTNOTEQUALS_TOKEN:
 		{
 			// ECMA 11.9.5
-			return new DebuggerValue(!ECMA.strictEquals(eeContext.toValue(lhs.debuggerValue), eeContext
-                    .toValue(rhs.debuggerValue)));
+			return new DebuggerValue(new Boolean(!ECMA.strictEquals(eeContext.toValue(lhs.debuggerValue), eeContext
+					.toValue(rhs.debuggerValue))));
 		}
 		case Tokens.BITWISEAND_TOKEN:
 		{
 			// ECMA 11.10
-			return new DebuggerValue((double) (ECMA.toInt32(session, eeContext.toValue(lhs.debuggerValue))
-                    & ECMA.toInt32(session, eeContext.toValue(rhs.debuggerValue))));
+			return new DebuggerValue(new Double(ECMA.toInt32(session, eeContext.toValue(lhs.debuggerValue))
+					& ECMA.toInt32(session, eeContext.toValue(rhs.debuggerValue))));
 		}
 		case Tokens.BITWISEXOR_TOKEN:
 		{
 			// ECMA 11.10
-			return new DebuggerValue((double) (ECMA.toInt32(session, eeContext.toValue(lhs.debuggerValue))
-                    ^ ECMA.toInt32(session, eeContext.toValue(rhs.debuggerValue))));
+			return new DebuggerValue(new Double(ECMA.toInt32(session, eeContext.toValue(lhs.debuggerValue))
+					^ ECMA.toInt32(session, eeContext.toValue(rhs.debuggerValue))));
 		}
 		case Tokens.BITWISEOR_TOKEN:
 		{
 			// ECMA 11.10
-			return new DebuggerValue((double) (ECMA.toInt32(session, eeContext.toValue(lhs.debuggerValue))
-                    | ECMA.toInt32(session, eeContext.toValue(rhs.debuggerValue))));
+			return new DebuggerValue(new Double(ECMA.toInt32(session, eeContext.toValue(lhs.debuggerValue))
+					| ECMA.toInt32(session, eeContext.toValue(rhs.debuggerValue))));
 		}
 		case Tokens.LOGICALAND_TOKEN:
 		{

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/expression/ECMA.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/expression/ECMA.java b/modules/debugger/src/java/flash/tools/debugger/expression/ECMA.java
index ca04e8d..536aea4 100644
--- a/modules/debugger/src/java/flash/tools/debugger/expression/ECMA.java
+++ b/modules/debugger/src/java/flash/tools/debugger/expression/ECMA.java
@@ -43,7 +43,7 @@ public class ECMA
 	/**
 	 * ECMA 4.3.2
 	 */
-	private static boolean isPrimitive(Value v)
+	public static boolean isPrimitive(Value v)
 	{
 		v = safeValue(v);
 		Object o = v.getValueAsObject();
@@ -93,7 +93,7 @@ public class ECMA
 	 * @param optionalPreferredType
 	 *            either NUMBER, STRING, or null.
 	 */
-	private static Value defaultValue(Session session, Value v, PreferredType optionalPreferredType)
+	public static Value defaultValue(Session session, Value v, PreferredType optionalPreferredType)
 	{
 		v = safeValue(v);
 		String typename = v.getTypeName();
@@ -171,7 +171,14 @@ public class ECMA
 		case VariableType.NUMBER:
 		{
 			double d = ((Double) v.getValueAsObject()).doubleValue();
-            return !(d == 0 || Double.isNaN(d));
+			if (d == 0 || Double.isNaN(d))
+			{
+				return false;
+			}
+			else
+			{
+				return true;
+			}
 		}
 		case VariableType.STRING:
 			return ((String) v.getValueAsObject()).length() != 0;
@@ -291,7 +298,7 @@ public class ECMA
 		{
 			String sx = px.getValueAsString();
 			String sy = py.getValueAsString();
-			return DValue.forPrimitive(sx.compareTo(sy) < 0);
+			return DValue.forPrimitive(new Boolean(sx.compareTo(sy) < 0));
 		}
 		else
 		{
@@ -299,7 +306,7 @@ public class ECMA
 			double dy = toNumber(session, py);
 			if (Double.isNaN(dx) || Double.isNaN(dy))
 				return DValue.forPrimitive(Value.UNDEFINED);
-			return DValue.forPrimitive(dx < dy);
+			return DValue.forPrimitive(new Boolean(dx < dy));
 		}
 	}
 
@@ -328,8 +335,10 @@ public class ECMA
 				return x.equals(y);
 
 			// see if they are the same object
-            return (xv.getId() != -1 || yv.getId() != -1) && xv.getId() == yv.getId();
-        }
+			if (xv.getId() != -1 || yv.getId() != -1)
+				return xv.getId() == yv.getId();
+			return false;
+		}
 		else
 		{
 			if (x == null && y == Value.UNDEFINED)
@@ -349,15 +358,19 @@ public class ECMA
 				return dx == dy;
 			}
 			if (x instanceof Boolean)
-				return equals(session, DValue.forPrimitive(toNumber(session, xv)), yv);
+				return equals(session, DValue.forPrimitive(new Double(toNumber(session, xv))), yv);
 			if (y instanceof Boolean)
-				return equals(session, xv, DValue.forPrimitive(toNumber(session, yv)));
+				return equals(session, xv, DValue.forPrimitive(new Double(toNumber(session, yv))));
 			if ((x instanceof String || x instanceof Double) && yv.getType() == VariableType.OBJECT)
 			{
 				return equals(session, xv, toPrimitive(session, yv, null));
 			}
-            return xv.getType() == VariableType.OBJECT && (y instanceof String || y instanceof Double) && equals(session, toPrimitive(session, xv, null), yv);
-        }
+			if (xv.getType() == VariableType.OBJECT && (y instanceof String || y instanceof Double))
+			{
+				return equals(session, toPrimitive(session, xv, null), yv);
+			}
+			return false;
+		}
 	}
 
 	/** ECMA 11.9.6 */
@@ -385,8 +398,10 @@ public class ECMA
 				return x.equals(y);
 
 			// see if they are the same object
-            return (xv.getId() != -1 || yv.getId() != -1) && xv.getId() == yv.getId();
-        }
+			if (xv.getId() != -1 || yv.getId() != -1)
+				return xv.getId() == yv.getId();
+			return false;
+		}
 		else
 		{
 			return false;
@@ -402,7 +417,7 @@ public class ECMA
 	 *            any Value, possibly null
 	 * @return a non-null Value
 	 */
-	private static Value safeValue(Value v)
+	public static Value safeValue(Value v)
 	{
 		if (v == null)
 		{

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/expression/PlayerFaultException.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/expression/PlayerFaultException.java b/modules/debugger/src/java/flash/tools/debugger/expression/PlayerFaultException.java
index 1a6aa5f..aaa5c88 100644
--- a/modules/debugger/src/java/flash/tools/debugger/expression/PlayerFaultException.java
+++ b/modules/debugger/src/java/flash/tools/debugger/expression/PlayerFaultException.java
@@ -30,7 +30,7 @@ import flash.tools.debugger.events.FaultEvent;
  */
 public class PlayerFaultException extends Exception {
 	private static final long serialVersionUID = 7754580337597815207L;
-    private final FaultEvent m_event;
+    private FaultEvent m_event;
 
 	public PlayerFaultException(FaultEvent event)
 	{

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeASTBuilder.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeASTBuilder.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeASTBuilder.java
index 1588bf2..eb9bccf 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeASTBuilder.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeASTBuilder.java
@@ -36,7 +36,7 @@ public class ThreadSafeASTBuilder extends ThreadSafeDebuggerObject implements IA
 	/**
 	 * @param syncObj
 	 */
-    private ThreadSafeASTBuilder(Object syncObj, IASTBuilder astBuilder)
+	public ThreadSafeASTBuilder(Object syncObj, IASTBuilder astBuilder)
 	{
 		super(syncObj);
 		m_astBuilder = astBuilder;

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeBootstrap.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeBootstrap.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeBootstrap.java
index 706cacd..6fc9bf2 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeBootstrap.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeBootstrap.java
@@ -25,7 +25,7 @@ import flash.tools.debugger.Bootstrap;
  * Thread-safe wrapper for flash.tools.debugger.Bootstrap
  * @author Mike Morearty
  */
-class ThreadSafeBootstrap {
+public class ThreadSafeBootstrap {
 
 	private static ThreadSafeSessionManager fMgr;
 

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeDebuggerObject.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeDebuggerObject.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeDebuggerObject.java
index 43dc4e6..cfa0b08 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeDebuggerObject.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeDebuggerObject.java
@@ -26,13 +26,13 @@ package flash.tools.debugger.threadsafe;
  */
 class ThreadSafeDebuggerObject {
 
-	private final Object fSyncObj;
+	private Object fSyncObj;
 
-	ThreadSafeDebuggerObject(Object syncObj) {
+	protected ThreadSafeDebuggerObject(Object syncObj) {
 		fSyncObj = syncObj;
 	}
 
-	final Object getSyncObject() {
+	public final Object getSyncObject() {
 		return fSyncObj;
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeFrame.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeFrame.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeFrame.java
index 8374966..fd75802 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeFrame.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeFrame.java
@@ -33,7 +33,7 @@ import flash.tools.debugger.Variable;
  */
 public class ThreadSafeFrame extends ThreadSafeDebuggerObject implements Frame {
 	
-	private final Frame fFrame;
+	private Frame fFrame;
 	
 	private ThreadSafeFrame(Object syncObj, Frame frame) {
 		super(syncObj);
@@ -44,7 +44,7 @@ public class ThreadSafeFrame extends ThreadSafeDebuggerObject implements Frame {
 	 * Wraps a Frame inside a ThreadSafeFrame.  If the passed-in Frame
 	 * is null, then this function returns null.
 	 */
-	private static ThreadSafeFrame wrap(Object syncObj, Frame frame) {
+	public static ThreadSafeFrame wrap(Object syncObj, Frame frame) {
 		if (frame != null)
 			return new ThreadSafeFrame(syncObj, frame);
 		else
@@ -79,8 +79,11 @@ public class ThreadSafeFrame extends ThreadSafeDebuggerObject implements Frame {
 			if (other instanceof ThreadSafeFrame) {
 				return (fFrame.equals(((ThreadSafeFrame)other).fFrame));
 			}
-            return other instanceof Frame && (fFrame.equals(other));
-        }
+			if (other instanceof Frame) {
+				return (fFrame.equals(other));
+			}
+			return false;
+		}
 	}
 
 	public String toString() {

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeLocation.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeLocation.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeLocation.java
index 4c0659a..9c396cb 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeLocation.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeLocation.java
@@ -28,7 +28,7 @@ import flash.tools.debugger.SourceFile;
  */
 public class ThreadSafeLocation extends ThreadSafeDebuggerObject implements Location {
 
-	private final Location fLocation;
+	private Location fLocation;
 	
 	private ThreadSafeLocation(Object syncObj, Location location) {
 		super(syncObj);

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafePlayer.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafePlayer.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafePlayer.java
index d0a3398..44671aa 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafePlayer.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafePlayer.java
@@ -30,7 +30,7 @@ import flash.tools.debugger.Player;
  */
 public class ThreadSafePlayer extends ThreadSafeDebuggerObject implements Player {
 
-	private final Player fPlayer;
+	private Player fPlayer;
 	
 	private ThreadSafePlayer(Object syncObj, Player player) {
 		super(syncObj);

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSession.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSession.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSession.java
index 9815fcb..b802deb 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSession.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSession.java
@@ -43,7 +43,7 @@ import flash.tools.debugger.expression.PlayerFaultException;
  */
 public class ThreadSafeSession extends ThreadSafeDebuggerObject implements Session {
 
-	private final Session fSession;
+	private Session fSession;
 
 	private ThreadSafeSession(Object syncObj, Session session) {
 		super(syncObj);

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSessionManager.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSessionManager.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSessionManager.java
index c93a83e..2a89eb1 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSessionManager.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSessionManager.java
@@ -29,6 +29,7 @@ import flash.tools.debugger.Player;
 import flash.tools.debugger.Session;
 import flash.tools.debugger.SessionManager;
 import flash.tools.debugger.SessionManager2;
+import flash.tools.debugger.VersionException;
 
 /**
  * Thread-safe wrapper for flash.tools.debugger.SessionManager
@@ -36,7 +37,7 @@ import flash.tools.debugger.SessionManager2;
  */
 public class ThreadSafeSessionManager extends ThreadSafeDebuggerObject implements SessionManager2 {
 
-	private final SessionManager fSessionManager;
+	private SessionManager fSessionManager;
 	
 	private ThreadSafeSessionManager(SessionManager sessionManager) {
 		super(new Object());
@@ -96,8 +97,10 @@ public class ThreadSafeSessionManager extends ThreadSafeDebuggerObject implement
 		 * We just return the process to be consistent with PlayerSessionManager. 
 		 */
 		assert fSessionManager instanceof SessionManager2;
-
-		return ((SessionManager2) fSessionManager).launchForRun(uri, airLaunchInfo, waitReporter, launchNotification);
+		
+		Process process = ((SessionManager2) fSessionManager).launchForRun(uri, airLaunchInfo, waitReporter, launchNotification);
+			
+		return process;	
 		
   }
 

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSourceFile.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSourceFile.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSourceFile.java
index 786e0a0..fd56579 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSourceFile.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSourceFile.java
@@ -28,7 +28,7 @@ import flash.tools.debugger.SourceFile;
  */
 public class ThreadSafeSourceFile extends ThreadSafeDebuggerObject implements SourceFile {
 	
-	private final SourceFile fSourceFile;
+	private SourceFile fSourceFile;
 	
 	private ThreadSafeSourceFile(Object syncObj, SourceFile sourceFile) {
 		super(syncObj);

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSourceLocator.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSourceLocator.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSourceLocator.java
index 8d15014..ddab0bd 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSourceLocator.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSourceLocator.java
@@ -28,12 +28,12 @@ import flash.tools.debugger.SourceLocator;
  */
 public class ThreadSafeSourceLocator extends ThreadSafeDebuggerObject implements SourceLocator
 {
-	private final SourceLocator fSourceLocator;
+	private SourceLocator fSourceLocator;
 	
 	/**
 	 * @param syncObj
 	 */
-    private ThreadSafeSourceLocator(Object syncObj, SourceLocator sourceLocator)
+	public ThreadSafeSourceLocator(Object syncObj, SourceLocator sourceLocator)
 	{
 		super(syncObj);
 		fSourceLocator = sourceLocator;

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSwfInfo.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSwfInfo.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSwfInfo.java
index 39df3a6..40fa457 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSwfInfo.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeSwfInfo.java
@@ -30,7 +30,7 @@ import flash.tools.debugger.SwfInfo;
  */
 public class ThreadSafeSwfInfo extends ThreadSafeDebuggerObject implements SwfInfo {
 	
-	private final SwfInfo fSwfInfo;
+	private SwfInfo fSwfInfo;
 	
 	private ThreadSafeSwfInfo(Object syncObj, SwfInfo swfInfo) {
 		super(syncObj);
@@ -41,7 +41,7 @@ public class ThreadSafeSwfInfo extends ThreadSafeDebuggerObject implements SwfIn
 	 * Wraps a SwfInfo inside a ThreadSafeSwfInfo.  If the passed-in SwfInfo
 	 * is null, then this function returns null.
 	 */
-	private static ThreadSafeSwfInfo wrap(Object syncObj, SwfInfo swfInfo) {
+	public static ThreadSafeSwfInfo wrap(Object syncObj, SwfInfo swfInfo) {
 		if (swfInfo != null)
 			return new ThreadSafeSwfInfo(syncObj, swfInfo);
 		else

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeValue.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeValue.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeValue.java
index 50cce16..cf489ed 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeValue.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeValue.java
@@ -32,7 +32,7 @@ import flash.tools.debugger.Variable;
  */
 public class ThreadSafeValue extends ThreadSafeDebuggerObject implements Value {
 
-	private final Value fVal;
+	private Value fVal;
 
 	private ThreadSafeValue(Object syncObj, Value val) {
 		super(syncObj);
@@ -76,7 +76,10 @@ public class ThreadSafeValue extends ThreadSafeDebuggerObject implements Value {
 	}
 	
 	public boolean equals(Object other) {
-        return other instanceof Value && fVal.equals(getRaw((Value) other));
+		if (other instanceof Value)
+			return fVal.equals(getRaw((Value)other));
+		else
+			return false;
 	}
 
 	public int getAttributes() {

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeValueExp.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeValueExp.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeValueExp.java
index 62e80f1..8e6581e 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeValueExp.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeValueExp.java
@@ -33,7 +33,7 @@ public class ThreadSafeValueExp extends ThreadSafeDebuggerObject implements Valu
 {
 	private final ValueExp m_valueExp;
 
-	private ThreadSafeValueExp(Object syncObj, ValueExp valueExp)
+	public ThreadSafeValueExp(Object syncObj, ValueExp valueExp)
 	{
 		super(syncObj);
 		m_valueExp = valueExp;

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeVariable.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeVariable.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeVariable.java
index bf0199f..8e6a50f 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeVariable.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeVariable.java
@@ -33,7 +33,7 @@ import flash.tools.debugger.events.FaultEvent;
  */
 public class ThreadSafeVariable extends ThreadSafeDebuggerObject implements Variable {
 
-	private final Variable fVar;
+	private Variable fVar;
 
 	private ThreadSafeVariable(Object syncObj, Variable var) {
 		super(syncObj);

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeWatch.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeWatch.java b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeWatch.java
index d51e528..b88c41e 100644
--- a/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeWatch.java
+++ b/modules/debugger/src/java/flash/tools/debugger/threadsafe/ThreadSafeWatch.java
@@ -27,7 +27,7 @@ import flash.tools.debugger.Watch;
  */
 public class ThreadSafeWatch extends ThreadSafeDebuggerObject implements Watch {
 	
-	private final Watch fWatch;
+	private Watch fWatch;
 	
 	private ThreadSafeWatch(Object syncObj, Watch watch) {
 		super(syncObj);

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/util/URLEncoder.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/util/URLEncoder.java b/modules/debugger/src/java/flash/util/URLEncoder.java
index 8d0cd34..52afb29 100644
--- a/modules/debugger/src/java/flash/util/URLEncoder.java
+++ b/modules/debugger/src/java/flash/util/URLEncoder.java
@@ -21,15 +21,15 @@ package flash.util;
 
 import java.io.*;
 
-final class URLEncoder
+public final class URLEncoder
 {
-	private static final String charset = "UTF8"; //$NON-NLS-1$
+	public static final String charset = "UTF8"; //$NON-NLS-1$
 
 	private URLEncoder()
 	{
 	}
 
-	public static String encode(String s)
+	public static final String encode(String s)
 	{
 		try
 		{
@@ -41,7 +41,7 @@ final class URLEncoder
 		}
 	}
 
-	private static String encode(String s, String enc) throws UnsupportedEncodingException
+	public static final String encode(String s, String enc) throws UnsupportedEncodingException
 	{
 		if (!needsEncoding(s))
 		{
@@ -101,7 +101,7 @@ final class URLEncoder
 		return out.toString();
 	}
 
-	private static void toHex(StringBuilder buffer, byte[] b)
+	private static final void toHex(StringBuilder buffer, byte[] b)
 	{
 		for (int i = 0; i < b.length; i++)
 		{
@@ -123,7 +123,7 @@ final class URLEncoder
 		}
 	}
 
-	private static boolean needsEncoding(String s)
+	private static final boolean needsEncoding(String s)
 	{
 		if (s == null)
 		{

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flash/util/URLHelper.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flash/util/URLHelper.java b/modules/debugger/src/java/flash/util/URLHelper.java
index 9f5fb07..c0b6556 100644
--- a/modules/debugger/src/java/flash/util/URLHelper.java
+++ b/modules/debugger/src/java/flash/util/URLHelper.java
@@ -28,7 +28,7 @@ import java.util.regex.Pattern;
 
 public class URLHelper
 {
-	private static final Pattern URL_PATTERN = Pattern.compile("^(.*?)(\\?.*?)?(#.*)?$"); //$NON-NLS-1$
+	private static Pattern URL_PATTERN = Pattern.compile("^(.*?)(\\?.*?)?(#.*)?$"); //$NON-NLS-1$
 
 	/**
 	 * Everything before the "query" part of the URL.  E.g. for
@@ -75,7 +75,7 @@ public class URLHelper
 	 * "http://www.example.com/file?firstname=Bob&lastname=Smith#foo"
 	 * this would be "http://www.example.com/file".
 	 */
-    String getEverythingBeforeQuery()
+	public String getEverythingBeforeQuery()
 	{
 		return m_everythingBeforeQuery;
 	}
@@ -91,7 +91,7 @@ public class URLHelper
 	 * "?firstname=Bob&lastname=Smith" part. m_query contains the query
 	 * (including "?"), or "" if the URL has no query. Never null.
 	 */
-    String getQuery()
+	public String getQuery()
 	{
 		return m_query;
 	}
@@ -100,7 +100,7 @@ public class URLHelper
 	 * Sets the "query" portion of the URL.  This must be either the
 	 * empty string or a string that begins with "?".
 	 */
-    void setQuery(String query)
+	public void setQuery(String query)
 	{
 		// if there is a query, make sure it starts with "?"
 		if (query.length() > 0 && query.charAt(0) != '?')
@@ -115,7 +115,7 @@ public class URLHelper
 	 * Returns the "fragment" portion of the URL, e.g. the "#foo" part, or
 	 * "" if the URL has no fragment. Never null.
 	 */
-    String getFragment()
+	public String getFragment()
 	{
 		return m_fragment;
 	}
@@ -150,11 +150,15 @@ public class URLHelper
 			return false;
 
 		URLHelper newHelper = new URLHelper(everythingBeforeQuery + query + fragment);
-        return !(!newHelper.getEverythingBeforeQuery().equals(everythingBeforeQuery) ||
-                !newHelper.getQuery().equals(query) ||
-                !newHelper.getFragment().equals(fragment));
-
-    }
+		if (!newHelper.getEverythingBeforeQuery().equals(everythingBeforeQuery) ||
+			!newHelper.getQuery().equals(query) ||
+			!newHelper.getFragment().equals(fragment))
+		{
+			return false;
+		}
+		
+		return true;
+	}
 
 	/**
 	 * Returns the entire URL.
@@ -243,7 +247,7 @@ public class URLHelper
 	 * Locates characters 'c' in the scheme specific portion of a URI and
 	 * translates them into 'to'
 	 */
-	private static String escapeCharacter(String uri, char c, String to)
+	public static String escapeCharacter(String uri, char c, String to)
 	{
 		StringBuilder sb = new StringBuilder();
 

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flex/tools/debugger/cli/BreakAction.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flex/tools/debugger/cli/BreakAction.java b/modules/debugger/src/java/flex/tools/debugger/cli/BreakAction.java
index e8d834c..ddf7c08 100644
--- a/modules/debugger/src/java/flex/tools/debugger/cli/BreakAction.java
+++ b/modules/debugger/src/java/flex/tools/debugger/cli/BreakAction.java
@@ -33,7 +33,7 @@ import flash.tools.debugger.expression.ValueExp;
  * A breakpoint can be enabled or disabled.  It can be set such
  * that it disabled or deletes itself after being hit N times.
  */
-class BreakAction
+public class BreakAction
 {
 	// return values for getStatus()
 	public final static int		RESOLVED = 1;

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flex/tools/debugger/cli/BreakIdentifier.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flex/tools/debugger/cli/BreakIdentifier.java b/modules/debugger/src/java/flex/tools/debugger/cli/BreakIdentifier.java
index 79627b2..0516b98 100644
--- a/modules/debugger/src/java/flex/tools/debugger/cli/BreakIdentifier.java
+++ b/modules/debugger/src/java/flex/tools/debugger/cli/BreakIdentifier.java
@@ -22,7 +22,7 @@ package flex.tools.debugger.cli;
 /**
  * An singleton object that doles out unique identifiers to breakpoints and watchpoints
  */
-class BreakIdentifier
+public class BreakIdentifier
 {
 	private static int s_uniqueIdentifier  = 1;
 

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/fb33548f/modules/debugger/src/java/flex/tools/debugger/cli/CatchAction.java
----------------------------------------------------------------------
diff --git a/modules/debugger/src/java/flex/tools/debugger/cli/CatchAction.java b/modules/debugger/src/java/flex/tools/debugger/cli/CatchAction.java
index 21a1a35..afa7d6c 100644
--- a/modules/debugger/src/java/flex/tools/debugger/cli/CatchAction.java
+++ b/modules/debugger/src/java/flex/tools/debugger/cli/CatchAction.java
@@ -26,7 +26,7 @@ package flex.tools.debugger.cli;
  * 
  * @author Mike Morearty
  */
-class CatchAction
+public class CatchAction
 {
 	private final int m_id;
 	private final String m_typeToCatch;


Mime
View raw message