title: Can changing members of values of HashMap cause java.util.ConcurrentModificationException
body: <p>The below code is throwing concurrent Modification exception , the line where the exception is pointing is the first line of for loop </p>
  
  <pre><code>private synchronized void updateAllCacheValues() {
          for (Map.Entry&lt;Configurations, SalesConfiguration&gt; entry : ConfigurationCache.entrySet()) {
              Configurations conf = entry.getKey();
              SalesConfiguration saleConfiguration = ConfigurationCache.get(conf);
              Map&lt;String, String&gt; newMap = generateKeyValueMapFromConfigurations(conf);
              lastLoadTimestamp = new Date();
              saleConfiguration.setMap(newMap, lastLoadTimestamp);
          }
          logger.debug("Successfully updated all cached configurations., cache size " + ConfigurationCache.size() + "LAST_LOAD_TIME" + lastLoadTimestamp);
      }
  </code></pre>
  
  <p>Below is the exception trace</p>
  
  <pre><code>java.util.ConcurrentModificationException
  at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429)
  at java.util.HashMap$EntryIterator.next(HashMap.java:1463)
  at java.util.HashMap$EntryIterator.next(HashMap.java:1461)
  at com.learning.java.daily.updateAllCacheValues(ConfigurationLoader.java:237)
  at com.learning.java.daily.updateAllCacheValues.impl.ConfigurationLoader.loadConfigurations(ConfigurationLoader.java:156)
  </code></pre>
  
  <p>I am not able to guess what could have caused this exception , because I wrote a sample test where I am modifying the attributes of the value of Map but concurrent modification exception did not appear.</p>