Odoo-mobile / framework

Odoo Mobile Framework
https://play.google.com/store/apps/dev?id=8607973775002477408
Other
329 stars 374 forks source link

Getting force close instead of getting Server Configuration Error Message. #147

Open kasim1011 opened 8 years ago

kasim1011 commented 8 years ago

I've mistakenly loaded different addon module on server. Than I tried to login with app (using self hosted URL). After entering URL, database spinner get loaded (as usually). After selecting database (which is not loaded on server) when I tried to login, App got force stop with NullPointerException.

here's the log

D/OpenGLRenderer: endAllStagingAnimators on 0x7fa42abfec00 (ListPopupWindow$DropDownListView) with handle 0x7fa42c252400

              [ 04-28 17:35:58.303  7885: 7885 V/         ]
              LoginUser()

              [ 04-28 17:35:58.304  7885: 7885 V/         ]
              LoginProcess

              [ 04-28 17:35:58.304  7885: 7885 V/         ]
              Processing Self Hosted Server Login
I/qtaguid: Failed write_ctrl(u 29) res=-1 errno=22
I/qtaguid: Untagging socket 29 failed errno=-22
W/NetworkManagementSocketTagger: untagSocket(29) failed with errno -22
D/AndroidRuntime: Shutting down VM

              --------- beginning of crash
E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.serpentcs.saltracker, PID: 7885
              java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
                  at odoo.wrapper.OdooWrapper.onResponse(OdooWrapper.java:1155)
                  at odoo.wrapper.OdooWrapper.onResponse(OdooWrapper.java:65)
                  at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:65)
                  at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
                  at android.os.Handler.handleCallback(Handler.java:739)
                  at android.os.Handler.dispatchMessage(Handler.java:95)
                  at android.os.Looper.loop(Looper.java:148)
                  at android.app.ActivityThread.main(ActivityThread.java:5417)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Here's the method of OdooWrapper.java from aar file

public void onResponse(JSONObject response) {
    OdooLog.d(new Object[]{"RESPONSE:" + response});
    OdooResponse responseMap = this.parseToResponse(response);

    // responseMap is null, which is not checked that's why I'm getting force close
    // instead of getting message like 'Server Configuration Error'

    int id = responseMap.id.intValue(); <- NullPointerException Thrown
    IOdooResponse odooResponse = this.responseQueue.get(id);
    if(odooResponse != null) {
        if(responseMap.error != null) {
            OdooError error = OdooError.parse(responseMap.error);
            error.setResponseCode(ErrorCode.OdooServerError.get());
            odooResponse.onError(error);
        } else {
            odooResponse.onResponse(responseMap.result);
        }

        this.responseQueue.remove(id);
    }

    }

in above code responseMap is null, which is not checked that's why I'm getting force close instead of getting message like 'Server Configuration Error'.

Hope you guys fix these ASAP. Thanks

kasim1011 commented 8 years ago

Thanks, @dpr-odoo

arisembekss commented 8 years ago

i have same problem, so how to fix it?