Make InMemoryTraceRepository thread-safe

Closes gh-3027
pull/3885/head
olivier bourgain 10 years ago committed by Andy Wilkinson
parent 8681a8ad2a
commit 5ed2a9632b

@ -16,6 +16,7 @@
package org.springframework.boot.actuate.trace; package org.springframework.boot.actuate.trace;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.LinkedList; import java.util.LinkedList;
@ -26,6 +27,7 @@ import java.util.Map;
* In-memory implementation of {@link TraceRepository}. * In-memory implementation of {@link TraceRepository}.
* *
* @author Dave Syer * @author Dave Syer
* @author Olivier Bourgain
*/ */
public class InMemoryTraceRepository implements TraceRepository { public class InMemoryTraceRepository implements TraceRepository {
@ -40,20 +42,24 @@ public class InMemoryTraceRepository implements TraceRepository {
* @param reverse flag value (default true) * @param reverse flag value (default true)
*/ */
public void setReverse(boolean reverse) { public void setReverse(boolean reverse) {
synchronized (this.traces) {
this.reverse = reverse; this.reverse = reverse;
} }
}
/** /**
* @param capacity the capacity to set * @param capacity the capacity to set
*/ */
public void setCapacity(int capacity) { public void setCapacity(int capacity) {
synchronized (this.traces) {
this.capacity = capacity; this.capacity = capacity;
} }
}
@Override @Override
public List<Trace> findAll() { public List<Trace> findAll() {
synchronized (this.traces) { synchronized (this.traces) {
return Collections.unmodifiableList(this.traces); return Collections.unmodifiableList(new ArrayList<Trace>(this.traces));
} }
} }

Loading…
Cancel
Save