Original
 1 public boolean contains(String name) {
 2   if(name == null) {
 3     return false;
 4   }
   
   
   
   
   
   
   
   
   
   
   
   
 4      
 5   if(factory.exists(name)) {
 6     Marker other = factory.getMarker(name);
 7     return contains(other);
 8        } else {
     
 9   return false;
10   }
11 }
12 
Modified
 1 public boolean contains(String name) {
 2   if(name == null) {
 3     throw new IllegalArgumentException("Other cannot be null");
 4   }
 5   
 6   if (this.name.equals(name)) {
 7     return true;
 8   }
 9   
10   if (hasChildren()) {
11     for(int i = 0; i < children.size(); i++) {
12       Marker child = (Marker) children.get(i);
13       if(child.contains(name)) {
14         return true;
15       }
16     }
17        }
   
   
   
        
18   
19   return false;
   
20 }
21