فهرست منبع

avoid NPE in processAutocompleteUserList

did not test why this can happen.   autocompleteUser.id must have been null..

Exception java.lang.NullPointerException:
  at com.nextcloud.talk.controllers.ContactsController.processAutocompleteUserList (ContactsController.kt:498)
  at com.nextcloud.talk.controllers.ContactsController.processAutocompleteUserList (ContactsController.kt:482)
  at com.nextcloud.talk.controllers.ContactsController.access$processAutocompleteUserList (ContactsController.kt:90)
  at com.nextcloud.talk.controllers.ContactsController$fetchData$1.onNext (ContactsController.kt:438)
  at com.nextcloud.talk.controllers.ContactsController$fetchData$1.onNext (ContactsController.kt:432)
  at io.reactivex.internal.operators.observable.ObservableRetryPredicate$RepeatObserver.onNext (ObservableRetryPredicate.java:69)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal (ObservableObserveOn.java:201)
  at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run (ObservableObserveOn.java:255)
  at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run (HandlerScheduler.java:124)
  at android.os.Handler.handleCallback (Handler.java:883)
  at android.os.Handler.dispatchMessage (Handler.java:100)
  at android.os.Looper.loop (Looper.java:237)
  at android.app.ActivityThread.main (ActivityThread.java:7948)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1075)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe 2 سال پیش
والد
کامیت
d9280d3d98
1فایلهای تغییر یافته به همراه4 افزوده شده و 4 حذف شده
  1. 4 4
      app/src/main/java/com/nextcloud/talk/controllers/ContactsController.kt

+ 4 - 4
app/src/main/java/com/nextcloud/talk/controllers/ContactsController.kt

@@ -130,13 +130,12 @@ class ContactsController(args: Bundle) :
         setHasOptionsMenu(true)
         sharedApplication!!.componentApplication.inject(this)
 
+        existingParticipants = ArrayList()
         if (args.containsKey(BundleKeys.KEY_NEW_CONVERSATION)) {
             isNewConversationView = true
-            existingParticipants = ArrayList()
         } else if (args.containsKey(BundleKeys.KEY_ADD_PARTICIPANTS)) {
             isAddingParticipantsView = true
             conversationToken = args.getString(BundleKeys.KEY_TOKEN)
-            existingParticipants = ArrayList()
             if (args.containsKey(BundleKeys.KEY_EXISTING_PARTICIPANTS)) {
                 existingParticipants = args.getStringArrayList(BundleKeys.KEY_EXISTING_PARTICIPANTS)
             }
@@ -497,8 +496,9 @@ class ContactsController(args: Bundle) :
         val actorTypeConverter = EnumActorTypeConverter()
         val newUserItemList: MutableList<AbstractFlexibleItem<*>> = ArrayList<AbstractFlexibleItem<*>>()
         for (autocompleteUser in autocompleteUsersList) {
-            if (autocompleteUser.id != currentUser!!.userId &&
-                !existingParticipants!!.contains(autocompleteUser.id!!)
+            if (autocompleteUser.id != null &&
+                autocompleteUser.id != currentUser!!.userId &&
+                !existingParticipants!!.contains(autocompleteUser.id)
             ) {
                 participant = createParticipant(autocompleteUser, actorTypeConverter)
                 val headerTitle = getHeaderTitle(participant)