There's a possibility that this might race and an
actor can have it's queue overwritten by another thread, so convert
this to a local variable.
Change-Id: Ic84922c6d109d8361a48debbf971fddd9cee1d3e
Signed-off-by: Tomas Cere <tcere@cisco.com>
private static final Logger LOG = LoggerFactory.getLogger(MeteredBoundedMailbox.class);
private static final String QUEUE_SIZE = "q-size";
private static final Logger LOG = LoggerFactory.getLogger(MeteredBoundedMailbox.class);
private static final String QUEUE_SIZE = "q-size";
- private MeteredMessageQueue queue;
private final Integer capacity;
private final FiniteDuration pushTimeOut;
private final MetricRegistry registry;
private final Integer capacity;
private final FiniteDuration pushTimeOut;
private final MetricRegistry registry;
@Override
public MeteredMessageQueue create(final scala.Option<ActorRef> owner, scala.Option<ActorSystem> system) {
@Override
public MeteredMessageQueue create(final scala.Option<ActorRef> owner, scala.Option<ActorSystem> system) {
- this.queue = new MeteredMessageQueue(this.capacity, this.pushTimeOut);
- monitorQueueSize(owner, this.queue);
- return this.queue;
+ final MeteredMessageQueue queue = new MeteredMessageQueue(this.capacity, this.pushTimeOut);
+ monitorQueueSize(owner, queue);
+ return queue;
}
private void monitorQueueSize(scala.Option<ActorRef> owner, final MeteredMessageQueue monitoredQueue) {
}
private void monitorQueueSize(scala.Option<ActorRef> owner, final MeteredMessageQueue monitoredQueue) {