Fix potential race condition 03/77603/4
authorKrzysztof Opasiak <k.opasiak@samsung.com>
Wed, 30 Jan 2019 13:10:35 +0000 (14:10 +0100)
committerKrzysztof Opasiak <k.opasiak@samsung.com>
Thu, 31 Jan 2019 20:16:49 +0000 (21:16 +0100)
commit0c59da823026c29d6a7c243c74e8f858c20b8f75
tree529e487b16876746535d80c1a5392e55005ab8f0
parent7df5aea14cfd8b46ba3a8bba7e3e76e7f0272e68
Fix potential race condition

init() is currently called outside of synhronized block.
This is may lead to race condition as init() creates new bus consumer
(this.consumer) which is the copied and nulled in stop() synchronized
block. This may lead to race condition if:

Thread #1                       Thread #2

this.alive = true;
this.alive = false
consumerCopy = this.consumer;

this.consumer = new Consumer();

// false
if(consumerCopy != null) {
    consumerCopy.close();
} else {
    log.warn();
}

As a result, new BusConsumers are being created but they are never
close().

Issue-ID: POLICY-1387
Change-Id: I2eadb12ef1c4b07b9e47dc6ebc096acc713299a0
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
policy-endpoints/src/main/java/org/onap/policy/common/endpoints/event/comm/bus/internal/InlineBusTopicSink.java