For completeness here's a tester. (it passes on the above code)

    public static void main(String[] args) {
          System.out.println("Run this with vm arg: -ea");
          System.out.println("Running test...");
          FixedHashMap<String,Object> recMap1 = new FixedHashMap<String, 
Object>();
          recMap1.put("me", recMap1);
          FixedHashMap<String,Object> recMap2 = new FixedHashMap<String, 
Object>();
          recMap2.put("me", recMap2);
          HashMap<Object,Object> containerMap = new HashMap<Object, 
Object>();
          containerMap.put(recMap1, null); // <---- causes a stack overflow 
if recMap1 is a regular HashMap with recursion
          containerMap.put(recMap2, null); 
          System.out.println("assertions...");
          assert recMap1.equals(recMap1);
          assert false == containerMap.equals(recMap1);
          assert false == recMap1.equals(containerMap);
          assert containerMap.equals(containerMap);
          assert recMap1.equals(recMap2);
          assert containerMap.size() == 1;
          System.out.println(containerMap.toString());
          System.out.println("Done");
      }


-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to