Program: 134732
Project: 134732
Buggy source:
/** 
 * Recursively checks if the given type is a typedef'd XmlEntityStruct or sequence of that,  or if it is a struct that contains such a typedef or a nested struct that contains the XML struct, or if it is an interface that contains xml types. <p> This method descends into interfaces and struct children while resolving sequences and typedefs.
 * @param depth 0-based counter for recursion depth, to control log output.
 * @return true if <code>type</code> is an XmlEntityStruct or uses one.
 */
private boolean isOrHasXmlEntityStruct(TypeSpec type,int depth){
  boolean ret=false;
  if (type instanceof AliasTypeSpec) {
    AliasTypeSpec alias=(AliasTypeSpec)type;
    TypeSpec otype=alias.originalType();
    ret=isOrHasXmlEntityStruct(otype,depth + 1);
  }
 else   if (type instanceof VectorType) {
    VectorType vector=(VectorType)type;
    ret=isOrHasXmlEntityStruct(vector.elementTypeSpec(),depth + 1);
  }
 else   if (type instanceof ConstrTypeSpec) {
    TypeDeclaration decl=((ConstrTypeSpec)type.typeSpec()).c_type_spec.declaration();
    if (decl instanceof StructType) {
      StructType struct=(StructType)decl;
      if (struct.name().equals(XML_ENTITY_STRUCT_NAME)) {
        ret=true;
      }
 else {
        ret=hasXmlEntityStruct(struct,depth);
      }
    }
 else     if (decl instanceof Interface) {
      Interface interfce=(Interface)decl;
      if (interfce.body == null) {
        interfce=(Interface)((ConstrTypeSpec)AcsAdapterForOldJacorb.getFromTypeMap(interfce.pack_name + "String_Node_Str" + interfce.name())).c_type_spec;
        visitInterface(interfce);
      }
      if (interfaceStack.contains(interfce)) {
        throw new IllegalArgumentException("String_Node_Str" + interfce.name());
      }
      if (xmlAwareIFs.contains(interfce)) {
        ret=true;
      }
    }
 else {
      System.out.println("String_Node_Str" + decl.getClass().getSimpleName());
    }
  }
  return ret;
}

Fixed version (ground truth):
/** 
 * Recursively checks if the given type is a typedef'd XmlEntityStruct or sequence of that,  or if it is a struct that contains such a typedef or a nested struct that contains the XML struct, or if it is an interface that contains xml types. <p> This method descends into interfaces and struct children while resolving sequences and typedefs.
 * @param depth 0-based counter for recursion depth, to control log output.
 * @return true if <code>type</code> is an XmlEntityStruct or uses one.
 */
private boolean isOrHasXmlEntityStruct(TypeSpec type,int depth){
  boolean ret=false;
  if (type instanceof AliasTypeSpec) {
    AliasTypeSpec alias=(AliasTypeSpec)type;
    TypeSpec otype=alias.originalType();
    ret=isOrHasXmlEntityStruct(otype,depth + 1);
  }
 else   if (type instanceof VectorType) {
    VectorType vector=(VectorType)type;
    ret=isOrHasXmlEntityStruct(vector.elementTypeSpec(),depth + 1);
  }
 else   if (type instanceof ConstrTypeSpec) {
    TypeDeclaration decl=((ConstrTypeSpec)type.typeSpec()).c_type_spec.declaration();
    if (decl instanceof StructType) {
      StructType struct=(StructType)decl;
      if (struct.name().equals(XML_ENTITY_STRUCT_NAME)) {
        ret=true;
      }
 else {
        ret=hasXmlEntityStruct(struct,depth);
      }
    }
 else     if (decl instanceof Interface) {
      Interface interfce=(Interface)decl;
      if (interfce.body == null) {
        interfce=(Interface)((ConstrTypeSpec)AcsAdapterForOldJacorb.getFromTypeMap(interfce.pack_name + "String_Node_Str" + interfce.name())).c_type_spec;
        visitInterface(interfce);
      }
      if (interfaceStack.contains(interfce)) {
        throw new IllegalArgumentException("String_Node_Str" + interfce.name());
      }
      if (xmlAwareIFs.contains(interfce)) {
        ret=true;
      }
    }
 else     if (decl instanceof EnumType) {
    }
 else {
      System.out.println("String_Node_Str" + decl.getClass().getSimpleName());
    }
  }
  return ret;
}