Skip to content

Commit bdf40cd

Browse files
committed
Removed SubmissionClientException
1 parent cf2357c commit bdf40cd

6 files changed

Lines changed: 37 additions & 49 deletions

File tree

src/main/java/com/exceptionless/exceptionlessclient/exceptions/SubmissionClientException.java

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/main/java/com/exceptionless/exceptionlessclient/queue/DefaultEventQueue.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
package com.exceptionless.exceptionlessclient.queue;
22

33
import com.exceptionless.exceptionlessclient.configuration.Configuration;
4-
import com.exceptionless.exceptionlessclient.exceptions.SubmissionClientException;
54
import com.exceptionless.exceptionlessclient.models.Event;
65
import com.exceptionless.exceptionlessclient.models.storage.StorageItem;
7-
import com.exceptionless.exceptionlessclient.submission.SubmissionResponse;
86
import com.exceptionless.exceptionlessclient.storage.StorageProviderIF;
97
import com.exceptionless.exceptionlessclient.submission.SubmissionClientIF;
8+
import com.exceptionless.exceptionlessclient.submission.SubmissionResponse;
109
import com.exceptionless.exceptionlessclient.utils.VisibleForTesting;
1110
import lombok.Builder;
1211
import lombok.extern.slf4j.Slf4j;
@@ -137,11 +136,13 @@ public void process() {
137136
log.info(
138137
String.format("Sending %s events to %s", events.size(), configuration.getServerUrl()));
139138
SubmissionResponse response = submissionClient.postEvents(events);
139+
if (response.hasException()) {
140+
log.error("Error submitting events from queue", response.getException());
141+
suspendProcessing();
142+
return;
143+
}
140144
processSubmissionResponse(response, storedEvents);
141145
eventPosted(response, events);
142-
} catch (SubmissionClientException e) {
143-
log.error("Error submitting events from queue", e);
144-
suspendProcessing();
145146
} finally {
146147
synchronized (this) {
147148
processingQueue = false;

src/main/java/com/exceptionless/exceptionlessclient/submission/DefaultSubmissionClient.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.exceptionless.exceptionlessclient.submission;
22

33
import com.exceptionless.exceptionlessclient.configuration.Configuration;
4-
import com.exceptionless.exceptionlessclient.exceptions.SubmissionClientException;
54
import com.exceptionless.exceptionlessclient.models.Event;
65
import com.exceptionless.exceptionlessclient.models.UserDescription;
76
import com.exceptionless.exceptionlessclient.settings.SettingsManager;
@@ -84,7 +83,7 @@ private SubmissionResponse postSubmission(String url, Object data) {
8483
.body(body == null ? "" : body.string())
8584
.build();
8685
} catch (Exception e) {
87-
throw new SubmissionClientException(e);
86+
return SubmissionResponse.builder().exception(e).build();
8887
}
8988
}
9089

@@ -122,7 +121,7 @@ public void sendHeartBeat(String sessionIdOrUserId, boolean closeSession) {
122121
sessionIdOrUserId));
123122
}
124123
} catch (Exception e) {
125-
throw new SubmissionClientException(e);
124+
log.error("Error while submitting heartbeat", e);
126125
}
127126
}
128127
}

src/main/java/com/exceptionless/exceptionlessclient/submission/SubmissionResponse.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
public class SubmissionResponse {
99
int code;
1010
String body;
11+
Exception exception;
1112

1213
public boolean isSuccess() {
1314
return code >= 200 && code <= 299;
@@ -36,4 +37,8 @@ public boolean isNotFound() {
3637
public boolean isRequestEntityTooLarge() {
3738
return code == 413;
3839
}
40+
41+
public boolean hasException() {
42+
return exception != null;
43+
}
3944
}

src/test/java/com/exceptionless/exceptionlessclient/queue/DefaultEventQueueTest.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
import com.exceptionless.exceptionlessclient.TestFixtures;
44
import com.exceptionless.exceptionlessclient.configuration.Configuration;
5-
import com.exceptionless.exceptionlessclient.exceptions.SubmissionClientException;
65
import com.exceptionless.exceptionlessclient.models.Event;
7-
import com.exceptionless.exceptionlessclient.submission.SubmissionResponse;
86
import com.exceptionless.exceptionlessclient.storage.InMemoryStorage;
97
import com.exceptionless.exceptionlessclient.storage.InMemoryStorageProvider;
108
import com.exceptionless.exceptionlessclient.submission.DefaultSubmissionClient;
9+
import com.exceptionless.exceptionlessclient.submission.SubmissionResponse;
1110
import org.junit.jupiter.api.BeforeEach;
1211
import org.junit.jupiter.api.Test;
1312
import org.junit.jupiter.api.extension.ExtendWith;
@@ -111,7 +110,9 @@ public void itShouldNotPostEmptyEvents() {
111110
public void itShouldSuspendProcessingOnClientException() {
112111
storage.save(event);
113112

114-
doThrow(new SubmissionClientException("test")).when(submissionClient).postEvents(List.of(event));
113+
doReturn(SubmissionResponse.builder().exception(new RuntimeException("test")).build())
114+
.when(submissionClient)
115+
.postEvents(List.of(event));
115116

116117
queue.onEventsPosted(testHandler);
117118
queue.process();
@@ -250,11 +251,9 @@ public void itShouldReduceSubmissionBatchSizeIfRequestEntitiesAreTooLarge() {
250251
queue.process();
251252

252253
// One invocation with full batch
253-
verify(submissionClient, times(1))
254-
.postEvents(argThat(argument -> argument.size() == 3));
254+
verify(submissionClient, times(1)).postEvents(argThat(argument -> argument.size() == 3));
255255
// One invocation with reduced batch
256-
verify(submissionClient, times(1))
257-
.postEvents(argThat(argument -> argument.size() == 2));
256+
verify(submissionClient, times(1)).postEvents(argThat(argument -> argument.size() == 2));
258257
}
259258

260259
@Test
@@ -303,11 +302,9 @@ public void itShouldResetSubmissionBatchSizeOnNextSuccessfulResponse() {
303302

304303
// Two invocations with full batch; First with the default size and next after a successful
305304
// response
306-
verify(submissionClient, times(2))
307-
.postEvents(argThat(argument -> argument.size() == 3));
305+
verify(submissionClient, times(2)).postEvents(argThat(argument -> argument.size() == 3));
308306
// One invocation with reduced batch
309-
verify(submissionClient, times(1))
310-
.postEvents(argThat(argument -> argument.size() == 2));
307+
verify(submissionClient, times(1)).postEvents(argThat(argument -> argument.size() == 2));
311308
}
312309

313310
@Test

src/test/java/com/exceptionless/exceptionlessclient/submission/DefaultSubmissionClientTest.java

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.exceptionless.exceptionlessclient.TestFixtures;
44
import com.exceptionless.exceptionlessclient.configuration.Configuration;
5-
import com.exceptionless.exceptionlessclient.exceptions.SubmissionClientException;
65
import com.exceptionless.exceptionlessclient.models.Event;
76
import com.exceptionless.exceptionlessclient.models.UserDescription;
87
import com.exceptionless.exceptionlessclient.settings.SettingsManager;
@@ -18,7 +17,6 @@
1817
import java.util.Map;
1918

2019
import static org.assertj.core.api.Assertions.assertThat;
21-
import static org.assertj.core.api.Assertions.assertThatThrownBy;
2220
import static org.mockito.ArgumentMatchers.any;
2321
import static org.mockito.ArgumentMatchers.argThat;
2422
import static org.mockito.Mockito.*;
@@ -90,12 +88,14 @@ public void itCanPostEventsSuccessfullyWhenNoSettingHeaderIsReturned() throws IO
9088
}
9189

9290
@Test
93-
public void itCanThrowAllExceptionsAsSubmissionExceptionWhilePostingEvents() {
94-
doThrow(new RuntimeException("test")).when(httpClient).newCall(any());
91+
public void itCanHandleAllExceptionsWhilePostingEvents() {
92+
Exception exception = new RuntimeException("test");
93+
doThrow(exception).when(httpClient).newCall(any());
94+
95+
SubmissionResponse response = submissionClient.postEvents(List.of(Event.builder().build()));
9596

96-
assertThatThrownBy(() -> submissionClient.postEvents(List.of(Event.builder().build())))
97-
.isInstanceOf(SubmissionClientException.class)
98-
.hasMessage("java.lang.RuntimeException: test");
97+
assertThat(response.hasException()).isTrue();
98+
assertThat(response.getException()).isSameAs(exception);
9999
}
100100

101101
@Test
@@ -140,15 +140,14 @@ public void itCanPostUserDescriptionSuccessfullyWhenNoSettingHeaderIsReturned()
140140
}
141141

142142
@Test
143-
public void itCanThrowAllExceptionsAsSubmissionExceptionWhilePostingUserDescription() {
144-
doThrow(new RuntimeException("test")).when(httpClient).newCall(any());
143+
public void itCanHandleAllExceptionsWhilePostingUserDescription() {
144+
Exception exception = new RuntimeException("test");
145+
doThrow(exception).when(httpClient).newCall(any());
145146

146-
assertThatThrownBy(
147-
() ->
148-
submissionClient.postUserDescription(
149-
"test-reference-id", UserDescription.builder().build()))
150-
.isInstanceOf(SubmissionClientException.class)
151-
.hasMessage("java.lang.RuntimeException: test");
147+
SubmissionResponse response = submissionClient.postUserDescription("test-reference-id", UserDescription.builder().build());
148+
149+
assertThat(response.hasException()).isTrue();
150+
assertThat(response.getException()).isSameAs(exception);
152151
}
153152

154153
@Test
@@ -172,11 +171,9 @@ public void itCanSendHeartbeatSuccessfully() throws IOException {
172171
}
173172

174173
@Test
175-
public void itCanThrowAllExceptionsAsSubmissionExceptionWhileSendingHeartbeat() {
174+
public void itCanHandleAllExceptionsWhileSendingHeartbeat() {
176175
doThrow(new RuntimeException("test")).when(httpClient).newCall(any());
177176

178-
assertThatThrownBy(() -> submissionClient.sendHeartBeat("test-user-id", true))
179-
.isInstanceOf(SubmissionClientException.class)
180-
.hasMessage("java.lang.RuntimeException: test");
177+
submissionClient.sendHeartBeat("test-user-id", true);
181178
}
182179
}

0 commit comments

Comments
 (0)