7

I have been using QuickBlox for chat in our application and it connects fine upon login to ChatService. However, at times when its disconnected and tries to reconnect, it throws up this error which you can see in the below stacktrace. Every single time I call the ChatService.getInstance.login(user, callback) method, I make sure to instantiate a QBUser object.

It is done like this,

final QBUser user = new QBUser();
        user.setLogin(username);
        user.setPassword(HashLearnNowConstant.QB_PWD);




public void login(final QBUser user, final QBEntityCallback callback){

        // Create REST API session
        //
        QBAuth.createSession(user, new QBEntityCallbackImpl<QBSession>() {
            @Override
            public void onSuccess(QBSession session, Bundle args) {

                user.setId(session.getUserId());

                // login to Chat
                //
                if(!chatService.isLoggedIn()){
                    loginToChat(user, new QBEntityCallbackImpl() {

                        @Override
                        public void onSuccess() {
                            callback.onSuccess();
                        }

                        @Override
                        public void onError(List errors) {
                            callback.onError(errors);
                            Log.i(HashLearnNowConstant.LOG_TAG,"loginToChat error: " + errors.get(0).toString());
                        }
                    });
                }else{
                    callback.onSuccess();
                }

            }

            @Override
            public void onError(List<String> errors) {
                callback.onError(errors);
                Log.i(HashLearnNowConstant.LOG_TAG,"createSession error: " + errors.get(0).toString());
            }
        });
    }

    public void loginToChat(final QBUser user, final QBEntityCallback callback){
        Log.i(HashLearnNowConstant.LOG_TAG,"loginToChat method entered");

        chatService.login(user, new QBEntityCallbackImpl() {
            @Override
            public void onSuccess() {

                // Start sending presences
                //
                try {
                    chatService.startAutoSendPresence(AUTO_PRESENCE_INTERVAL_IN_SECONDS);
                } catch (SmackException.NotLoggedInException e) {
                    e.printStackTrace();
                }

                callback.onSuccess();
            }

            @Override
            public void onError(List errors) {
                callback.onError(errors);
                Log.i(HashLearnNowConstant.LOG_TAG,"loginToChat error: " + errors.get(0).toString());
            }
        });
    }

You can find the stacktrace here,

0   java.lang.IllegalArgumentException: User's id and password can't be null
1   at com.quickblox.chat.QBChatService.validateUser(QBChatService.java:313)
2   at com.quickblox.chat.QBChatService.login(QBChatService.java:271)
3   at com.quickblox.chat.QBChatService.login(QBChatService.java:258)
4   at com.hashlearn.now.ChatService.loginToChat(ChatService.java:129)
5   at com.hashlearn.now.ChatService$1.onSuccess(ChatService.java:85)
6   at com.hashlearn.now.ChatService$1.onSuccess(ChatService.java:76)
7   at com.quickblox.core.query.Query.notifySuccess(Query.java:304)
8   at com.quickblox.core.query.Query$VersionEntityCallback.completedWithResponse(Query.java:336)
9   at com.quickblox.core.query.Query.completedWithResponse(Query.java:250)
10  at com.quickblox.core.server.HttpRequestRunnable$1.handleMessage(HttpRequestRunnable.java:43)
11  at android.os.Handler.dispatchMessage(Handler.java:107)
12  at android.os.Looper.loop(Looper.java:194)
13  at android.app.ActivityThread.main(ActivityThread.java:5416)
14  at java.lang.reflect.Method.invokeNative(Native Method)
15  at java.lang.reflect.Method.invoke(Method.java:525)
16  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
17  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
18  at dalvik.system.NativeStart.main(Native Method)

Please help.

Shashank Murali
  • 216
  • 2
  • 6

0 Answers0