Skip to content

Commit

Permalink
update configuration to use concurrentlinkedqueue for holding callbacks
Browse files Browse the repository at this point in the history
  • Loading branch information
fractalwrench committed Mar 9, 2018
1 parent d693c07 commit 1bd636c
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions sdk/src/main/java/com/bugsnag/android/Configuration.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import java.util.Map;
import java.util.Observable;
import java.util.Observer;
import java.util.concurrent.ConcurrentLinkedQueue;

/**
* User-specified configuration storage object, contains information
Expand Down Expand Up @@ -50,9 +51,9 @@ public class Configuration extends Observable implements Observer {

@NonNull
private MetaData metaData;
private final Collection<BeforeNotify> beforeNotifyTasks = new LinkedHashSet<>();
private final Collection<BeforeNotify> beforeNotifyTasks = new ConcurrentLinkedQueue<>();
private final Collection<BeforeRecordBreadcrumb> beforeRecordBreadcrumbTasks
= new LinkedHashSet<>();
= new ConcurrentLinkedQueue<>();
private String codeBundleId;
private String notifierType;

Expand Down Expand Up @@ -547,7 +548,9 @@ protected boolean shouldIgnoreClass(String className) {
* @param beforeNotify the new before notify task
*/
protected void beforeNotify(BeforeNotify beforeNotify) {
this.beforeNotifyTasks.add(beforeNotify);
if (!beforeNotifyTasks.contains(beforeNotify)) {
beforeNotifyTasks.add(beforeNotify);
}
}

/**
Expand All @@ -556,7 +559,9 @@ protected void beforeNotify(BeforeNotify beforeNotify) {
* @param beforeRecordBreadcrumb the new before breadcrumb task
*/
protected void beforeRecordBreadcrumb(BeforeRecordBreadcrumb beforeRecordBreadcrumb) {
this.beforeRecordBreadcrumbTasks.add(beforeRecordBreadcrumb);
if (!beforeRecordBreadcrumbTasks.contains(beforeRecordBreadcrumb)) {
beforeRecordBreadcrumbTasks.add(beforeRecordBreadcrumb);
}
}

/**
Expand Down

0 comments on commit 1bd636c

Please sign in to comment.