public IChannelInfo channelData( String channelName, String userName, InetSocketAddress userAddress) { // System.out.println("channelName channel:"+channelName+" user:"******" // addr:"+userAddress); ChannelInfo channel = channelsCache.get(channelName); if (channel == null) { synchronized (channels) { channel = channels.get(channelName); if (channel == null) { channel = new ChannelInfo(channelName); channels.put(channelName, channel); updateChannelsCache(); ServerLogger.getInstance().channelCreated(channelName); } } } boolean updated = channel.userData(userName, userAddress); if (updated) { ServerLogger.getInstance().channelJoined(channelName, userName, userAddress); } return channel; }