title: UnsupportedOperationException at java.util.AbstractList.add
body: <p>I'm having issues getting a block of code to run properly. I'm not entirely sure WHAT this code does (I'm trying to get a plugin that's out of date to work properly with our server), I just know every 20 minutes it runs and throws out an error. Here's the section of code where the issue is happening:</p>
  
  <pre><code>public class DynamicThread extends Thread {
  private LocalShops plugin = null;
  
  
  public DynamicThread(ThreadGroup tgroup, String tname, LocalShops plugin) {
      super(tgroup, tname);
      this.plugin = plugin;
  }
  
  public void run() {
      Map&lt;ItemInfo, List&lt;Integer&gt;&gt; itemStockMap = Collections.synchronizedMap(new HashMap&lt;ItemInfo, List&lt;Integer&gt;&gt;());
  
      //Dump all the shop stock data into the map.
      for ( Shop shop : plugin.getShopManager().getAllShops() ) {
          for ( InventoryItem item : shop.getItems() ) {
              if (itemStockMap.containsKey(item.getInfo()))
                  itemStockMap.get(item.getInfo()).add(item.getStock()); //Where error happens
              else
                  itemStockMap.put(item.getInfo(), Arrays.asList(item.getStock()));     
          }
      }
      for(ItemInfo item : itemStockMap.keySet()) {
          List&lt;Integer&gt; stockList = GenericFunctions.limitOutliers(itemStockMap.get(item));
          //remove the map before re-adding it
          if (DynamicManager.getPriceAdjMap().containsKey(item)) 
              DynamicManager.getPriceAdjMap().remove(item);
  
          //Get the overall stock change for a given item and then calculate the adjustment given the volatility
          int deltaStock = GenericFunctions.getSum(stockList) - Config.getGlobalBaseStock();
          DynamicManager.getPriceAdjMap().put(item, GenericFunctions.getAdjustment(Config.getGlobalVolatility(), deltaStock)); 
      }
  
      Bukkit.getServer().getScheduler().callSyncMethod(plugin, plugin.getShopManager().updateSigns());
  }
  </code></pre>
  
  <p>}</p>
  
  <p>The error happens from line 42, which is:</p>
  
  <pre><code>                itemStockMap.get(item.getInfo()).add(item.getStock());
  </code></pre>
  
  <p>The error it outputs happens every 20 minutes twice with 2 seconds in between.</p>
  
  <pre><code>2012-02-16 16:53:25 [INFO] Launch Dynamic Thread
  2012-02-16 16:53:25 [SEVERE] Exception in thread "dynamic" 
  2012-02-16 16:53:25 [SEVERE] java.lang.UnsupportedOperationException
  2012-02-16 16:53:25 [SEVERE] at java.util.AbstractList.add(AbstractList.java:131)
  2012-02-16 16:53:25 [SEVERE] at java.util.AbstractList.add(AbstractList.java:91)
  2012-02-16 16:53:25 [SEVERE] at       com.milkbukkit.localshops.threads.DynamicThread.run(DynamicThread.java:42)
  
  2012-02-16 16:53:27 [INFO] Launch Dynamic Thread
  2012-02-16 16:53:27 [SEVERE] Exception in thread "dynamic" 
  2012-02-16 16:53:27 [SEVERE] java.lang.UnsupportedOperationException
  2012-02-16 16:53:27 [SEVERE] at java.util.AbstractList.add(AbstractList.java:131)
  2012-02-16 16:53:27 [SEVERE] at java.util.AbstractList.add(AbstractList.java:91)
  2012-02-16 16:53:27 [SEVERE] at     com.milkbukkit.localshops.threads.DynamicThread.run(DynamicThread.java:42)
  </code></pre>
  
  <p>Thanks in advance for any help. </p>