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));
}
if ((code >= 200) && (code < 600))
if ((code >= 200) && (code < 600)) {
complete = true;
}
response.add(line);
} catch (InterruptedException ex) {
Log.e(TAG, "InterruptedException");
Log.e(TAG, "Failed to process response", ex);
}
}
if (code >= ResponseCode.FailedRangeStart &&
code <= ResponseCode.FailedRangeEnd) {
throw new NativeDaemonConnectorException(code, String.format(
"Command %s failed with code %d",
cmd, code));
/*
* Note: The format of the last response in this case is
* "NNN <errmsg>"
*/
throw new NativeDaemonConnectorException(
code, cmd, response.get(response.size()-1).substring(4));
}
return response;
}

View File

@@ -22,6 +22,7 @@ package com.android.server;
public class NativeDaemonConnectorException extends RuntimeException
{
private int mCode = -1;
private String mCmd;
public NativeDaemonConnectorException() {}
@@ -30,13 +31,18 @@ public class NativeDaemonConnectorException extends RuntimeException
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;
mCmd = cmd;
}
public int getCode() {
return mCode;
}
public String getCmd() {
return mCmd;
}
}