title: Java bug when adding items from an iterator to a dataset - repetition of single value
body: <pre><code>public void operation(Text key, Iterable&lt;HashMapWritable&lt;Text, ArrayListOfIntsWritable&gt;&gt; values, Context context) throws IOException, InterruptedException
  {
      Set&lt;HashMapWritable&lt;Text, ArrayListOfIntsWritable&gt;&gt; valueSet = new HashSet&lt;HashMapWritable&lt;Text, ArrayListOfIntsWritable&gt;&gt;();
      for (HashMapWritable&lt;Text, ArrayListOfIntsWritable&gt; value : values) {
          valueSet.add(value);
          System.out.println(value);
      }
      System.out.println("break 1");
      System.out.println(valueSet);
      System.out.println("break 2");
  </code></pre>
  
  <p>So my operation takes in this iterable, and adds it to a hashset, however if the size of the iterator is N, the valueSet contains N times the final value input. The system println's give the following results as an example:</p>
  
  <pre><code> [exec] {Bart_the_Fink.txt.gz=[25]}
   [exec] {Bart_the_General.txt.gz=[28]}
   [exec] {Bart_the_Lover.txt.gz=[25]}
   [exec] {Bart_the_Murderer.txt.gz=[25]}
   [exec] {Bart_the_Mother.txt.gz=[23]}
   [exec] {Bart_the_Genius.txt.gz=[28]}
   [exec] break 1
   [exec] [{Bart_the_Genius.txt.gz=[28]}, {Bart_the_Genius.txt.gz=[28]}, {Bart_the_Genius.txt.gz=[28]}, {Bart_the_Genius.txt.gz=[28]}, {Bart_the_Genius.txt.gz=[28]}, {Bart_the_Genius.txt.gz=[28]}]
   [exec] break 2
  </code></pre>
  
  <p>For the life of me I can't figure out why</p>