I have a singleton class that contains a hahsmap, the hashmap is initialised as a class variable. This map is updated correctly because when i add and print the size it changed, but, when i call it from a different thread the map is always empty. Is there a particular reason why this might happen?
I am using a ConccurentHashMap if this makes any difference.
Thanks
Singleton decleration:
    public class ClientRegistryDetailsSingleton {
        private static ClientRegistryDetailsSingleton instance = null;
        private ConcurrentHashMap<String, Integer> tickerToNumberRegistered = new ConcurrentHashMap<String,Integer>();
        protected ClientRegistryDetailsSingleton() {
             // Exists only to defeat instantiation.
        }
        public static ClientRegistryDetailsSingleton getInstance() {
            if(instance == null) {
               instance = new ClientRegistryDetailsSingleton();
            }
            return instance;
        }
        public void setTickerToNumberRegistered(ConcurrentHashMap<String, Integer> tickerToNumberRegistered) {
            this.tickerToNumberRegistered = tickerToNumberRegistered;
        }
        public ConcurrentHashMap<String, Integer> getTickerToNumberRegistered() {
            return tickerToNumberRegistered;
        }
    public void addToClienets(String ticker){}
    public void removeFromClients(String ticker){}
}
Calling it from another thread:
String[] splitForTicker = message.split(",");
        ConcurrentHashMap<String, Integer> map = ClientRegistryDetailsSingleton.getInstance().getTickerToNumberRegistered();
        System.out.println("The number of items in the map from senders persepctive" + map.size());
Output:
The number of items in the map from senders persepctive 0 2012-11-12 14:29:12,495 [Process messages received] INFO com.feed.feedReceive.ProcessFeedStreamLine - Successfully received a message from the feed The number of items in the map from senders persepctive 0 1 :the size of the map now someone has added 2012-11-12 14:29:15,495 [Process messages received] INFO com.feed.feedReceive.ProcessFeedStreamLine - Successfully received amessage from the feed The number of items in the map from senders persepctive 0
New code for Singleton
public class ClientRegistryDetailsSingleton {
    private static ClientRegistryDetailsSingleton instance = new ClientRegistryDetailsSingleton();
    private volatile ConcurrentHashMap<String, Integer> tickerToNumberRegistered = new ConcurrentHashMap<String,Integer>();
    protected ClientRegistryDetailsSingleton() {
         // Exists only to defeat instantiation.
    }
    public static synchronized ClientRegistryDetailsSingleton getInstance() {
        return instance;
    }
    public synchronized ConcurrentHashMap<String, Integer> getTickerToNumberRegistered() {
        return tickerToNumberRegistered;
    }
    public void addToClienets(String ticker){}
    public void removeFromClients(String ticker){}
}
 
     
     
     
    