Skip to content

Commit d82a1ac

Browse files
committed
Added exception handling for timers
1 parent 740418d commit d82a1ac

File tree

4 files changed

+30
-9
lines changed

4 files changed

+30
-9
lines changed

src/main/java/com/exceptionless/exceptionlessclient/ExceptionlessClient.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,11 @@ private void init() {
3939
new TimerTask() {
4040
@Override
4141
public void run() {
42-
configurationManager.getSettingsManager().updateSettingsThreadSafe();
42+
try {
43+
configurationManager.getSettingsManager().updateSettingsThreadSafe();
44+
} catch (Exception e) {
45+
configurationManager.getLog().error("Error in updating settings", e);
46+
}
4347
}
4448
},
4549
UPDATE_SETTINGS_TIMER_INITIAL_DELAY,

src/main/java/com/exceptionless/exceptionlessclient/plugins/preconfigured/DuplicateErrorCheckerPlugin.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
import java.util.*;
1515

1616
public class DuplicateErrorCheckerPlugin implements EventPluginIF {
17-
private static final String MERGED_EVENTS_RESUBMISSION_TIMER_NAME = "merged-events-resubmission-timer";
17+
private static final String MERGED_EVENTS_RESUBMISSION_TIMER_NAME =
18+
"merged-events-resubmission-timer";
1819

1920
private final LogIF log;
2021
private final int maxHashesCount;
@@ -41,9 +42,13 @@ private void init() {
4142
new TimerTask() {
4243
@Override
4344
public void run() {
44-
MergedEvent event = mergedEvents.poll();
45-
if (event != null) {
46-
event.resubmit();
45+
try {
46+
MergedEvent event = mergedEvents.poll();
47+
if (event != null) {
48+
event.resubmit();
49+
}
50+
} catch (Exception e) {
51+
log.error("Error in resubmitting merged events", e);
4752
}
4853
}
4954
},
@@ -57,7 +62,7 @@ public int getPriority() {
5762

5863
@Override
5964
public void run(
60-
EventPluginContext eventPluginContext, ConfigurationManager configurationManager) {
65+
EventPluginContext eventPluginContext, ConfigurationManager configurationManager) {
6166
Event event = eventPluginContext.getEvent();
6267
Optional<Error> maybeError = event.getError();
6368
if (maybeError.isEmpty()) {

src/main/java/com/exceptionless/exceptionlessclient/plugins/preconfigured/HeartbeatPlugin.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public int getPriority() {
3232
public void run(
3333
EventPluginContext eventPluginContext, ConfigurationManager configurationManager) {
3434
Optional<UserInfo> maybeUserInfo = eventPluginContext.getEvent().getUserInfo();
35-
if (!maybeUserInfo.isPresent()) {
35+
if (maybeUserInfo.isEmpty()) {
3636
return;
3737
}
3838
if (maybeUserInfo.get().getIdentity().equals(prevIdentity)) {
@@ -46,7 +46,15 @@ public void run(
4646
new TimerTask() {
4747
@Override
4848
public void run() {
49-
configurationManager.submitSessionHeartbeat(prevIdentity);
49+
try {
50+
configurationManager.submitSessionHeartbeat(prevIdentity);
51+
} catch (Exception e) {
52+
configurationManager
53+
.getLog()
54+
.error(
55+
String.format("Error in submitting hearbeat for identity: %s", prevIdentity),
56+
e);
57+
}
5058
}
5159
},
5260
heartbeatInterval);

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,11 @@ private void init(Integer processingIntervalInSecs) {
5555
new TimerTask() {
5656
@Override
5757
public void run() {
58-
onProcessQueue();
58+
try {
59+
onProcessQueue();
60+
} catch (Exception e) {
61+
log.error("Error in processing queue", e);
62+
}
5963
}
6064
},
6165
processingIntervalInSecs * 1000);

0 commit comments

Comments
 (0)