diff --git a/src/com/loopj/android/http/BinaryHttpResponseHandler.java b/src/com/loopj/android/http/BinaryHttpResponseHandler.java index 7d675a593..a72602fb5 100644 --- a/src/com/loopj/android/http/BinaryHttpResponseHandler.java +++ b/src/com/loopj/android/http/BinaryHttpResponseHandler.java @@ -143,11 +143,17 @@ protected void handleMessage(Message msg) { switch(msg.what) { case SUCCESS_MESSAGE: response = (Object[])msg.obj; - handleSuccessMessage(((Integer) response[0]).intValue() , (byte[]) response[1]); + if (response[1] instanceof String) { + handleFailureMessage(new HttpResponseException(((Integer) response[0]).intValue(), + "String cannot be cast to byte[]"), response.toString()); + } else { + handleSuccessMessage(((Integer) response[0]).intValue() , (byte[]) response[1]); + } break; case FAILURE_MESSAGE: response = (Object[])msg.obj; - handleFailureMessage((Throwable)response[0], response[1].toString()); + String res1 = response[1] == null ? "" : response[1].toString(); + handleFailureMessage((Throwable) response[0], res1); break; default: super.handleMessage(msg);