Don’t throw exceptions from ReportMessageManager#store()
This commit is contained in:
parent
10c6f885fd
commit
df01be2dca
|
@ -8,6 +8,8 @@ import java.security.MessageDigest;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.whispersystems.textsecuregcm.util.UUIDUtil;
|
import org.whispersystems.textsecuregcm.util.UUIDUtil;
|
||||||
import org.whispersystems.textsecuregcm.util.Util;
|
import org.whispersystems.textsecuregcm.util.Util;
|
||||||
|
|
||||||
|
@ -19,6 +21,8 @@ public class ReportMessageManager {
|
||||||
private final ReportMessageDynamoDb reportMessageDynamoDb;
|
private final ReportMessageDynamoDb reportMessageDynamoDb;
|
||||||
private final MeterRegistry meterRegistry;
|
private final MeterRegistry meterRegistry;
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(ReportMessageManager.class);
|
||||||
|
|
||||||
public ReportMessageManager(ReportMessageDynamoDb reportMessageDynamoDb, final MeterRegistry meterRegistry) {
|
public ReportMessageManager(ReportMessageDynamoDb reportMessageDynamoDb, final MeterRegistry meterRegistry) {
|
||||||
|
|
||||||
this.reportMessageDynamoDb = reportMessageDynamoDb;
|
this.reportMessageDynamoDb = reportMessageDynamoDb;
|
||||||
|
@ -27,9 +31,13 @@ public class ReportMessageManager {
|
||||||
|
|
||||||
public void store(String sourceNumber, UUID messageGuid) {
|
public void store(String sourceNumber, UUID messageGuid) {
|
||||||
|
|
||||||
|
try {
|
||||||
Objects.requireNonNull(sourceNumber);
|
Objects.requireNonNull(sourceNumber);
|
||||||
|
|
||||||
reportMessageDynamoDb.store(hash(messageGuid, sourceNumber));
|
reportMessageDynamoDb.store(hash(messageGuid, sourceNumber));
|
||||||
|
} catch (final Exception e) {
|
||||||
|
logger.warn("Failed to store hash", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void report(String sourceNumber, UUID messageGuid) {
|
public void report(String sourceNumber, UUID messageGuid) {
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
package org.whispersystems.textsecuregcm.storage;
|
package org.whispersystems.textsecuregcm.storage;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.Mockito.doThrow;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.mockito.Mockito.verifyZeroInteractions;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import io.micrometer.core.instrument.Counter;
|
import io.micrometer.core.instrument.Counter;
|
||||||
|
@ -26,11 +28,18 @@ class ReportMessageManagerTest {
|
||||||
final UUID messageGuid = UUID.randomUUID();
|
final UUID messageGuid = UUID.randomUUID();
|
||||||
final String number = "+15105551111";
|
final String number = "+15105551111";
|
||||||
|
|
||||||
assertThrows(NullPointerException.class, () -> reportMessageManager.store(null, messageGuid));
|
assertDoesNotThrow(() -> reportMessageManager.store(null, messageGuid));
|
||||||
|
|
||||||
|
verifyZeroInteractions(reportMessageDynamoDb);
|
||||||
|
|
||||||
reportMessageManager.store(number, messageGuid);
|
reportMessageManager.store(number, messageGuid);
|
||||||
|
|
||||||
verify(reportMessageDynamoDb).store(any());
|
verify(reportMessageDynamoDb).store(any());
|
||||||
|
|
||||||
|
doThrow(RuntimeException.class)
|
||||||
|
.when(reportMessageDynamoDb).store(any());
|
||||||
|
|
||||||
|
assertDoesNotThrow(() -> reportMessageManager.store(number, messageGuid));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue