Program: 13326
Project: 13326
Buggy source:
public AttributeInfoHelper(String name,boolean isOperationalOption,Map<String,Object> schema) throws SchemaException {
  this.name=name;
  Object typeString=schema.get(Constants.TYPE);
  if (typeString instanceof String) {
    type=ConnectorUtil.findClassForName((String)typeString);
  }
 else {
    throw new SchemaException("String_Node_Str" + name + "String_Node_Str");
  }
  Object nativeTypeString=schema.get(ConnectorUtil.OPENICF_NATIVE_TYPE);
  Class<?> nativeType=null;
  if (nativeTypeString instanceof String) {
    nativeType=ConnectorUtil.findClassForName((String)nativeTypeString);
  }
 else {
    nativeType=type;
  }
  Object nativeNameString=schema.get(ConnectorUtil.OPENICF_NATIVE_NAME);
  String nativeName=null;
  if (nativeNameString instanceof String) {
    nativeName=(String)nativeNameString;
  }
 else {
    nativeName=name;
  }
  Object def=schema.get(Constants.DEFAULT);
  if (null == def) {
    defaultValue=null;
  }
 else {
    defaultValue=def;
  }
  if (!isOperationalOption) {
    Object k=schema.get("String_Node_Str");
    if (k instanceof String) {
      key=(String)k;
    }
 else {
      key=null;
    }
    Object c=schema.get("String_Node_Str");
    if (c instanceof String) {
      cipher=(String)c;
    }
 else {
      cipher=ServerConstants.SECURITY_CRYPTOGRAPHY_DEFAULT_CIPHER;
    }
    AttributeInfoBuilder builder=new AttributeInfoBuilder(nativeName,nativeType);
    builder.setMultiValued(Collection.class.isAssignableFrom(type));
    Object flagsObject=schema.get(ConnectorUtil.OPENICF_FLAGS);
    if (flagsObject instanceof List) {
      flags=new HashSet<AttributeFlag>(((List)flagsObject).size());
      for (      String flagString : (List<String>)flagsObject) {
        AttributeFlag flag=AttributeFlag.findByKey(flagString);
        if (null != flag) {
          if (AttributeFlag.NOT_CREATABLE.equals(flag)) {
            builder.setCreateable(false);
          }
 else           if (AttributeFlag.NOT_UPDATEABLE.equals(flag)) {
            builder.setUpdateable(false);
          }
 else           if (AttributeFlag.NOT_READABLE.equals(flag)) {
            builder.setReadable(false);
          }
 else           if (AttributeFlag.NOT_RETURNED_BY_DEFAULT.equals(flag)) {
            builder.setReturnedByDefault(false);
          }
 else {
            flags.add(flag);
          }
        }
      }
    }
 else {
      flags=Collections.emptySet();
    }
    builder.setRequired((null != schema.get(Constants.REQUIRED)) ? (Boolean)schema.get(Constants.REQUIRED) : false);
    attributeInfo=builder.build();
  }
 else {
    flags=null;
    attributeInfo=null;
    key=null;
    cipher=null;
  }
}

Fixed version (ground truth):
public AttributeInfoHelper(String name,boolean isOperationalOption,Map<String,Object> schema) throws SchemaException {
  this.name=name;
  Object typeString=schema.get(Constants.TYPE);
  if (typeString instanceof String) {
    type=ConnectorUtil.findClassForName((String)typeString);
  }
 else {
    throw new SchemaException(new JsonNode(typeString,new JsonPointer(Constants.TYPE)),"String_Node_Str" + name + "String_Node_Str");
  }
  Object nativeTypeString=schema.get(ConnectorUtil.OPENICF_NATIVE_TYPE);
  Class<?> nativeType=null;
  if (nativeTypeString instanceof String) {
    nativeType=ConnectorUtil.findClassForName((String)nativeTypeString);
  }
 else {
    nativeType=type;
  }
  Object nativeNameString=schema.get(ConnectorUtil.OPENICF_NATIVE_NAME);
  String nativeName=null;
  if (nativeNameString instanceof String) {
    nativeName=(String)nativeNameString;
  }
 else {
    nativeName=name;
  }
  Object def=schema.get(Constants.DEFAULT);
  if (null == def) {
    defaultValue=null;
  }
 else {
    defaultValue=def;
  }
  if (!isOperationalOption) {
    Object k=schema.get("String_Node_Str");
    if (k instanceof String) {
      key=(String)k;
    }
 else {
      key=null;
    }
    Object c=schema.get("String_Node_Str");
    if (c instanceof String) {
      cipher=(String)c;
    }
 else {
      cipher=ServerConstants.SECURITY_CRYPTOGRAPHY_DEFAULT_CIPHER;
    }
    AttributeInfoBuilder builder=new AttributeInfoBuilder(nativeName,nativeType);
    builder.setMultiValued(Collection.class.isAssignableFrom(type));
    Object flagsObject=schema.get(ConnectorUtil.OPENICF_FLAGS);
    if (flagsObject instanceof List) {
      flags=new HashSet<AttributeFlag>(((List)flagsObject).size());
      for (      String flagString : (List<String>)flagsObject) {
        AttributeFlag flag=AttributeFlag.findByKey(flagString);
        if (null != flag) {
          if (AttributeFlag.NOT_CREATABLE.equals(flag)) {
            builder.setCreateable(false);
          }
 else           if (AttributeFlag.NOT_UPDATEABLE.equals(flag)) {
            builder.setUpdateable(false);
          }
 else           if (AttributeFlag.NOT_READABLE.equals(flag)) {
            builder.setReadable(false);
          }
 else           if (AttributeFlag.NOT_RETURNED_BY_DEFAULT.equals(flag)) {
            builder.setReturnedByDefault(false);
          }
 else {
            flags.add(flag);
          }
        }
      }
    }
 else {
      flags=Collections.emptySet();
    }
    builder.setRequired((null != schema.get(Constants.REQUIRED)) ? (Boolean)schema.get(Constants.REQUIRED) : false);
    attributeInfo=builder.build();
  }
 else {
    flags=null;
    attributeInfo=null;
    key=null;
    cipher=null;
  }
}