title: NullPointerException with ArrayList - should not be possible?
body: <p>Today I got a NullPointerException at a point where it actually can't occur.</p>
  
  <pre><code>Exception in thread "Timer-9" java.lang.NullPointerException
      at packagename.censored.Bot.changeServergroups(Bot.java:1363)
      at packagename.censored.Bot.xpTask(Bot.java:1239)
      at packagename.censored.Bot.access$7(Bot.java:1187)
      at packagename.censored.Bot$9.run(Bot.java:729)
      at java.util.TimerThread.mainLoop(Timer.java:555)
      at java.util.TimerThread.run(Timer.java:505)
  </code></pre>
  
  <p>This is the relevant part of the code:</p>
  
  <pre><code>public void changeServergroups(int cldbid, ArrayList&lt;Integer&gt; addList, ArrayList&lt;Integer&gt; removeList) {
      // If there are groups to add AND delete, remove them from the lists
      if (addList != null &amp;&amp; removeList != null) {
          ArrayList&lt;Integer&gt; temp = new ArrayList&lt;Integer&gt;(addList);
          for (int s : temp) { // THIS IS LINE 1363
              if (removeList.contains(s)) {
                  addList.remove((Integer) s);
                  removeList.remove((Integer) s);
              }
          }
      }
      // some more code, to do the actual group changes
  }
  </code></pre>
  
  <p>How is it possible to get the NullPointerException there? I check to make sure that <code>addList</code> is not null before creating a new temporary ArrayList from it. Can someone tell me how this could possibly return in a NullPointerException?</p>