]> nmode's Git Repositories - signal-cli/commitdiff
Fix NPR when loading an inactive group
authorAsamK <asamk@gmx.de>
Sun, 8 Jun 2025 12:48:25 +0000 (14:48 +0200)
committerAsamK <asamk@gmx.de>
Sun, 8 Jun 2025 12:48:25 +0000 (14:48 +0200)
Fixes #1786

lib/src/main/java/org/asamk/signal/manager/helper/GroupHelper.java
lib/src/main/java/org/asamk/signal/manager/helper/GroupV2Helper.java

index 0d838204c390e7f87bf9dc100c538c63851b6687..682bd9961349bb06cc8fe48b50cec6cf196d6774 100644 (file)
@@ -551,6 +551,9 @@ public class GroupHelper {
         while (true) {
             final var page = context.getGroupV2Helper()
                     .getDecryptedGroupHistoryPage(groupSecretParams, fromRevision, sendEndorsementsExpirationMs);
+            if (page == null) {
+                break;
+            }
             page.getChangeLogs()
                     .stream()
                     .map(DecryptedGroupChangeLog::getChange)
index 900d7ea96812edb96e4cf6f6bd857e9b8e1897f9..8eb66843335af224dcac1b9ba51bb2919458e2aa 100644 (file)
@@ -44,6 +44,7 @@ import org.whispersystems.signalservice.api.push.ServiceId.PNI;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException;
 import org.whispersystems.signalservice.api.util.UuidUtil;
+import org.whispersystems.signalservice.internal.push.exceptions.NotInGroupException;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -119,6 +120,8 @@ class GroupV2Helper {
                             groupsV2AuthorizationString,
                             false,
                             sendEndorsementsExpirationMs);
+        } catch (NotInGroupException e) {
+            throw new NotAGroupMemberException(GroupUtils.getGroupIdV2(groupSecretParams), null);
         } catch (NonSuccessfulResponseCodeException e) {
             if (e.code == 403) {
                 throw new NotAGroupMemberException(GroupUtils.getGroupIdV2(groupSecretParams), null);