This is an automated email from the ASF dual-hosted git repository.

cbickel pushed a commit to branch tid
in repository 
https://gitbox.apache.org/repos/asf/incubator-openwhisk-client-go.git

commit 99c306968c8550e9c3aa19358a261976438bba8d
Author: Christian Bickel <cbic...@de.ibm.com>
AuthorDate: Thu Apr 26 08:44:50 2018 +0200

    Parse numbers correctly in error response.
---
 whisk/client.go | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/whisk/client.go b/whisk/client.go
index 85ac505..22a764a 100644
--- a/whisk/client.go
+++ b/whisk/client.go
@@ -514,11 +514,14 @@ func parseErrorResponse(resp *http.Response, data []byte, 
v interface{}) (*http.
        Debug(DbgInfo, "HTTP failure %d + body\n", resp.StatusCode)
 
        // Determine if an application error was received (#5)
-       errorResponse := &ErrorResponse{Response: resp}
-       err := json.Unmarshal(data, errorResponse)
+    buf := bytes.NewBuffer(data)
+    d := json.NewDecoder(buf)
+    d.UseNumber()
+
+    errorResponse := &ErrorResponse{Response: resp}
 
        // Determine if error is an application error or an error generated by 
API
-       if err == nil {
+    if err := d.Decode(&errorResponse); err != nil {
                if errorResponse.Code == nil /*&& errorResponse.ErrMsg != nil 
*/ && resp.StatusCode == 502 {
                        return parseApplicationError(resp, data, v)
                } else if errorResponse.Code != nil && errorResponse.ErrMsg != 
nil {
@@ -529,7 +532,7 @@ func parseErrorResponse(resp *http.Response, data []byte, v 
interface{}) (*http.
        }
 
        // Body contents are unknown (#6)
-       Debug(DbgError, "HTTP response with unexpected body failed due to 
contents parsing error: '%v'\n", err)
+//     Debug(DbgError, "HTTP response with unexpected body failed due to 
contents parsing error: '%v'\n", err)
        errMsg := wski18n.T("The connection failed, or timed out. (HTTP status 
code {{.code}})",
                map[string]interface{}{"code": resp.StatusCode})
        whiskErr := MakeWskError(errors.New(errMsg), resp.StatusCode-256, 
DISPLAY_MSG, NO_DISPLAY_USAGE)

-- 
To stop receiving notification emails like this one, please contact
cbic...@apache.org.

Reply via email to