import org.slf4j.LoggerFactory;
public class BrokerImpl implements Broker, DOMRpcProviderService, DOMRpcService, AutoCloseable {
- private final static Logger log = LoggerFactory.getLogger(BrokerImpl.class);
+ private static final Logger LOG = LoggerFactory.getLogger(BrokerImpl.class);
// Broker Generic Context
private final Set<ConsumerContextImpl> sessions = Collections
// Validation
private void checkPredicates(final Provider prov) {
Preconditions.checkNotNull(prov, "Provider should not be null.");
- for (final ProviderContextImpl session : providerSessions) {
- if (prov.equals(session.getProvider())) {
- throw new IllegalStateException("Provider already registered");
+ synchronized (providerSessions) {
+ for (final ProviderContextImpl session : providerSessions) {
+ if (prov.equals(session.getProvider())) {
+ throw new IllegalStateException("Provider already registered");
+ }
}
}
private void checkPredicates(final Consumer cons) {
Preconditions.checkNotNull(cons, "Consumer should not be null.");
- for (final ConsumerContextImpl session : sessions) {
- if (cons.equals(session.getConsumer())) {
- throw new IllegalStateException("Consumer already registered");
+ synchronized (sessions) {
+ for (final ConsumerContextImpl session : sessions) {
+ if (cons.equals(session.getConsumer())) {
+ throw new IllegalStateException("Consumer already registered");
+ }
}
}
}
@Override
public ConsumerSession registerConsumer(final Consumer consumer) {
checkPredicates(consumer);
- log.trace("Registering consumer {}", consumer);
+ LOG.trace("Registering consumer {}", consumer);
final ConsumerContextImpl session = newSessionFor(consumer);
consumer.onSessionInitiated(session);
sessions.add(session);