From a52a7439598a82dfdef460407bfad1ae288e66ba Mon Sep 17 00:00:00 2001 From: San Mehat Date: Wed, 3 Feb 2010 10:48:21 -0800 Subject: [PATCH] NativeDaemonConnector: Improve NativeDaemonException reporting to include the actual error response Signed-off-by: San Mehat --- .../com/android/server/NativeDaemonConnector.java | 14 +++++++++----- .../server/NativeDaemonConnectorException.java | 10 ++++++++-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/services/java/com/android/server/NativeDaemonConnector.java b/services/java/com/android/server/NativeDaemonConnector.java index 016aa52ac7..9a066d3d66 100644 --- a/services/java/com/android/server/NativeDaemonConnector.java +++ b/services/java/com/android/server/NativeDaemonConnector.java @@ -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 " + */ + throw new NativeDaemonConnectorException( + code, cmd, response.get(response.size()-1).substring(4)); } return response; } diff --git a/services/java/com/android/server/NativeDaemonConnectorException.java b/services/java/com/android/server/NativeDaemonConnectorException.java index e60aaf8685..426742b1e2 100644 --- a/services/java/com/android/server/NativeDaemonConnectorException.java +++ b/services/java/com/android/server/NativeDaemonConnectorException.java @@ -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; + } }