INT-2327-v2 polishing
fixed the initialization routine to perform only once
This commit is contained in:
@@ -46,6 +46,8 @@ public class SubscribableJmsChannel extends AbstractJmsChannel implements Subscr
|
||||
|
||||
private volatile MessageDispatcher dispatcher;
|
||||
|
||||
private volatile boolean initialized;
|
||||
|
||||
public SubscribableJmsChannel(AbstractMessageListenerContainer container, JmsTemplate jmsTemplate) {
|
||||
super(jmsTemplate);
|
||||
Assert.notNull(container, "container must not be null");
|
||||
@@ -65,17 +67,17 @@ public class SubscribableJmsChannel extends AbstractJmsChannel implements Subscr
|
||||
|
||||
@Override
|
||||
public void onInit() throws Exception {
|
||||
synchronized (this.dispatcher) {
|
||||
if (this.dispatcher == null){
|
||||
super.onInit();
|
||||
this.configureDispatcher(this.container.isPubSubDomain());
|
||||
MessageListener listener = new DispatchingMessageListener(this.getJmsTemplate(), this.dispatcher);
|
||||
this.container.setMessageListener(listener);
|
||||
if (!this.container.isActive()) {
|
||||
this.container.afterPropertiesSet();
|
||||
}
|
||||
}
|
||||
if (this.initialized){
|
||||
return;
|
||||
}
|
||||
super.onInit();
|
||||
this.configureDispatcher(this.container.isPubSubDomain());
|
||||
MessageListener listener = new DispatchingMessageListener(this.getJmsTemplate(), this.dispatcher);
|
||||
this.container.setMessageListener(listener);
|
||||
if (!this.container.isActive()) {
|
||||
this.container.afterPropertiesSet();
|
||||
}
|
||||
this.initialized = true;
|
||||
}
|
||||
|
||||
private void configureDispatcher(boolean isPubSub) {
|
||||
|
||||
Reference in New Issue
Block a user