From e617cab427838b306f3f850ad11a147e34dd5628 Mon Sep 17 00:00:00 2001 From: ialokim Date: Sun, 2 Jul 2023 22:08:38 +0200 Subject: [PATCH] add same fix for private groups --- .../GroupInvitationManagerImpl.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java index 6939552e9..0173e6f2c 100644 --- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImpl.java @@ -13,6 +13,7 @@ import org.briarproject.bramble.api.data.MetadataParser; import org.briarproject.bramble.api.db.DatabaseComponent; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.db.Metadata; +import org.briarproject.bramble.api.db.NoSuchGroupException; import org.briarproject.bramble.api.db.Transaction; import org.briarproject.bramble.api.identity.Author; import org.briarproject.bramble.api.lifecycle.LifecycleManager.OpenDatabaseHook; @@ -117,7 +118,23 @@ class GroupInvitationManagerImpl extends ConversationClientImpl // Create a local group to indicate that we've set this client up Group localGroup = contactGroupFactory.createLocalGroup(CLIENT_ID, MAJOR_VERSION); - if (db.containsGroup(txn, localGroup.getId())) return; + + if (db.containsGroup(txn, localGroup.getId())) { + // Check each contact one by one and see if a group already exists. + // If none exists, call addingContact() for that contact. + for (Contact c : db.getContacts(txn)) { + try { + getGroupCount(txn, c.getId()); + } catch (NoSuchGroupException e) { + System.out.println( + "no such group for " + c.getAuthor().getName() + + " " + + c.getAlias()); + addingContact(txn, c); + } + } + return; + } db.addGroup(txn, localGroup); // Set things up for any pre-existing contacts for (Contact c : db.getContacts(txn)) addingContact(txn, c);