import java.awt.Color;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.TreeSet;

import javax.swing.JFrame;

public class UCC_Sample {
    private Object[] arrayData;
    private List<Object> listData = new ArrayList<>();
    private Bean1 b1;
    private Bean2 b2;

    public void test0() {
        TreeSet<Date> tm = new TreeSet<>();
        tm.add(new Date());
        tm.add(new Date());
    }

    public void test1() {
        arrayData = new Object[3];
        arrayData[0] = new Integer(1);
        arrayData[1] = new StringTokenizer("this");
        arrayData[2] = new JFrame();
        listData.add(new GregorianCalendar());

    }

    public void test2() {
        listData.add(new UCC_Sample() {
        });
    }

    public void test3() {
        Set<Object> s = new HashSet<>();
        s.add(new int[] { 3, 2 });
        s.add(new Color(0, 128, 255));
    }

    public void bug1678805() {
        final File[] files = new File[5];
        for (int i = 0; i < 5; i++) {
            files[i] = getPath();
        }
    }

    public void fpTwoDifferentFieldSources() {
        b1.data.add("Hello");
        b2.data.add(5);
    }

    private File getPath() {
        return new File("c:\\temp");
    }

    static class Bean1 {
        List<String> data;
    }

    static class Bean2 {
        List<Integer> data;
    }
}
@@ -1318,24 +1318,167 @@
 (5);%0A    %7D%0A%0A
+    public void fpTwoDifferentFieldSources2(Holder h) %7B%0A        h.ic.ts.add(Integer.valueOf(1));%0A        h.lc.ts.add(Long.valueOf(1L));%0A    %7D%0A%0A
     private 
@@ -1655,10 +1655,181 @@
 a;%0A    %7D
+%0A%0A    static class Holder %7B%0A        public Container%3CInteger%3E ic;%0A        public Container%3CLong%3E lc;%0A    %7D%0A%0A    static class Container%3CT%3E %7B%0A        public Set%3CT%3E ts;%0A    %7D
 %0A%7D

add another fp