From 13d31c25cd7174010f38897406e8f13087ae1b4e Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Fri, 16 Dec 2011 04:16:13 -0500 Subject: [PATCH] INTSAMPLES-39 Synchronize Context Creation Creating an application context for a new customer needs to be synchronized. --- .../samples/ftp/DynamicFtpChannelResolver.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/advanced/dynamic-ftp/src/main/java/org/springframework/integration/samples/ftp/DynamicFtpChannelResolver.java b/advanced/dynamic-ftp/src/main/java/org/springframework/integration/samples/ftp/DynamicFtpChannelResolver.java index c14e82b7..9a6ba2e6 100644 --- a/advanced/dynamic-ftp/src/main/java/org/springframework/integration/samples/ftp/DynamicFtpChannelResolver.java +++ b/advanced/dynamic-ftp/src/main/java/org/springframework/integration/samples/ftp/DynamicFtpChannelResolver.java @@ -46,6 +46,14 @@ public class DynamicFtpChannelResolver { * @return a channel */ public MessageChannel resolve(String customer) { + MessageChannel channel = this.channels.get(customer); + if (channel == null) { + channel = createNewCustomerChannel(customer); + } + return channel; + } + + private synchronized MessageChannel createNewCustomerChannel(String customer) { MessageChannel channel = this.channels.get(customer); if (channel == null) { ConfigurableApplicationContext ctx = new ClassPathXmlApplicationContext(