From 5ff9e695538a493317d5887bde962c2a4149dcab Mon Sep 17 00:00:00 2001 From: Rishabh Mahajan Date: Fri, 7 Jun 2013 01:30:57 +0900 Subject: [PATCH] ClassCastException fix for BinaryHttpResponseHandler --- .../loopj/android/http/BinaryHttpResponseHandler.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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);