NativeDaemonConnector: Improve NativeDaemonException reporting to include the actual error response

Signed-off-by: San Mehat <san@google.com>
This commit is contained in:
San Mehat
2010-02-03 10:48:21 -08:00
parent 0e0980b533
commit a52a743959
2 changed files with 17 additions and 7 deletions

View File

@@ -219,19 +219,23 @@ final class NativeDaemonConnector implements Runnable {
String.format("Invalid response from daemon (%s)", line)); String.format("Invalid response from daemon (%s)", line));
} }
if ((code >= 200) && (code < 600)) if ((code >= 200) && (code < 600)) {
complete = true; complete = true;
}
response.add(line); response.add(line);
} catch (InterruptedException ex) { } catch (InterruptedException ex) {
Log.e(TAG, "InterruptedException"); Log.e(TAG, "Failed to process response", ex);
} }
} }
if (code >= ResponseCode.FailedRangeStart && if (code >= ResponseCode.FailedRangeStart &&
code <= ResponseCode.FailedRangeEnd) { code <= ResponseCode.FailedRangeEnd) {
throw new NativeDaemonConnectorException(code, String.format( /*
"Command %s failed with code %d", * Note: The format of the last response in this case is
cmd, code)); * "NNN <errmsg>"
*/
throw new NativeDaemonConnectorException(
code, cmd, response.get(response.size()-1).substring(4));
} }
return response; return response;
} }

View File

@@ -22,6 +22,7 @@ package com.android.server;
public class NativeDaemonConnectorException extends RuntimeException public class NativeDaemonConnectorException extends RuntimeException
{ {
private int mCode = -1; private int mCode = -1;
private String mCmd;
public NativeDaemonConnectorException() {} public NativeDaemonConnectorException() {}
@@ -30,13 +31,18 @@ public class NativeDaemonConnectorException extends RuntimeException
super(error); super(error);
} }
public NativeDaemonConnectorException(int code, String error) public NativeDaemonConnectorException(int code, String cmd, String error)
{ {
super(error); super(String.format("Cmd {%s} failed with code %d : {%s}", cmd, code, error));
mCode = code; mCode = code;
mCmd = cmd;
} }
public int getCode() { public int getCode() {
return mCode; return mCode;
} }
public String getCmd() {
return mCmd;
}
} }