Throw a MismatchedDevicesException for empty message lists to support iOS clients

This commit is contained in:
Jon Chambers
2025-04-09 21:53:58 -04:00
committed by GitHub
parent 3af2cc5c70
commit 01258de560
2 changed files with 21 additions and 1 deletions

View File

@@ -13,6 +13,7 @@ import io.micrometer.core.instrument.DistributionSummary;
import io.micrometer.core.instrument.Metrics;
import io.micrometer.core.instrument.Tag;
import io.micrometer.core.instrument.Tags;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -99,7 +100,11 @@ public class MessageSender {
@Nullable final String userAgent) throws MismatchedDevicesException, MessageTooLargeException {
if (messagesByDeviceId.isEmpty()) {
return;
// TODO Simply return and don't throw an exception when iOS clients no longer depend on this behavior
throw new MismatchedDevicesException(new MismatchedDevices(
destination.getDevices().stream().map(Device::getId).collect(Collectors.toSet()),
Collections.emptySet(),
Collections.emptySet()));
}
if (!destination.isIdentifiedBy(destinationIdentifier)) {