docs: private Set<OmemoDevice> buildMissingSessionsWithDevices(XMPPConnection connection,
                                                               OmemoDevice userDevice,
                                                               Set<OmemoDevice> devices)
              throws SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException {
  
          Set<OmemoDevice> devicesWithSession = new HashSet<>();
          for (OmemoDevice device : devices) {
  
              if (hasSession(userDevice, device)) {
                  devicesWithSession.add(device);
                  continue;
              }
  
              try {
                  buildFreshSessionWithDevice(connection, userDevice, device);
                  devicesWithSession.add(device);
              } catch (CannotEstablishOmemoSessionException e) {
                  LOGGER.log(Level.WARNING, userDevice + " cannot establish session with " + device +
                          " because their bundle could not be fetched.", e);
              } catch (CorruptedOmemoKeyException e) {
                  LOGGER.log(Level.WARNING, userDevice + " could not establish session with " + device +
                          "because their bundle seems to be corrupt.", e);
              }
  
          }
  
          return devicesWithSession;
      }