Program: 160607
Project: 160607
Buggy source:
private Object convert(EClassifier classifier,String value) throws DeserializeException {
  if (classifier != null) {
    if (classifier instanceof EClassImpl) {
      if (null != ((EClassImpl)classifier).getEStructuralFeature(WRAPPED_VALUE)) {
        IdEObject create=(IdEObject)ePackage.getEFactoryInstance().create((EClass)classifier);
        Class<?> instanceClass=create.eClass().getEStructuralFeature(WRAPPED_VALUE).getEType().getInstanceClass();
        if (value.equals("String_Node_Str")) {
        }
 else {
          if (instanceClass == Integer.class || instanceClass == int.class) {
            try {
              create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE),Integer.parseInt(value));
            }
 catch (            NumberFormatException e) {
              throw new DeserializeException(value + "String_Node_Str");
            }
          }
 else           if (instanceClass == Long.class || instanceClass == long.class) {
            create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE),Long.parseLong(value));
          }
 else           if (instanceClass == Boolean.class || instanceClass == boolean.class) {
            create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE),value.equals("String_Node_Str"));
          }
 else           if (instanceClass == Double.class || instanceClass == double.class) {
            try {
              create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE),Double.parseDouble(value));
            }
 catch (            NumberFormatException e) {
              throw new DeserializeException(value + "String_Node_Str");
            }
            create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE + "String_Node_Str"),value);
          }
 else           if (instanceClass == String.class) {
            create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE),value.substring(1,value.length() - 1));
          }
 else           if (instanceClass == Tristate.class) {
            Tristate tristate=null;
            if (value.equals("String_Node_Str")) {
              tristate=Tristate.TRUE;
            }
 else             if (value.equals("String_Node_Str")) {
              tristate=Tristate.FALSE;
            }
 else             if (value.equals("String_Node_Str")) {
              tristate=Tristate.UNDEFINED;
            }
            create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE),tristate);
          }
        }
        return create;
      }
 else {
        return processInline(classifier,value);
      }
    }
 else     if (classifier instanceof EDataType) {
      return convertSimpleValue(classifier.getInstanceClass(),value);
    }
  }
  return null;
}

Fixed version (ground truth):
private Object convert(EClassifier classifier,String value) throws DeserializeException {
  if (classifier != null) {
    if (classifier instanceof EClassImpl) {
      if (null != ((EClassImpl)classifier).getEStructuralFeature(WRAPPED_VALUE)) {
        IdEObject create=(IdEObject)ePackage.getEFactoryInstance().create((EClass)classifier);
        Class<?> instanceClass=create.eClass().getEStructuralFeature(WRAPPED_VALUE).getEType().getInstanceClass();
        if (value.equals("String_Node_Str")) {
        }
 else {
          if (instanceClass == Integer.class || instanceClass == int.class) {
            try {
              create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE),Integer.parseInt(value));
            }
 catch (            NumberFormatException e) {
              throw new DeserializeException(value + "String_Node_Str");
            }
          }
 else           if (instanceClass == Long.class || instanceClass == long.class) {
            create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE),Long.parseLong(value));
          }
 else           if (instanceClass == Boolean.class || instanceClass == boolean.class) {
            create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE),value.equals("String_Node_Str"));
          }
 else           if (instanceClass == Double.class || instanceClass == double.class) {
            try {
              create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE),Double.parseDouble(value));
            }
 catch (            NumberFormatException e) {
              throw new DeserializeException(value + "String_Node_Str");
            }
            create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE + "String_Node_Str"),value);
          }
 else           if (instanceClass == String.class) {
            create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE),readString(value));
          }
 else           if (instanceClass == Tristate.class) {
            Tristate tristate=null;
            if (value.equals("String_Node_Str")) {
              tristate=Tristate.TRUE;
            }
 else             if (value.equals("String_Node_Str")) {
              tristate=Tristate.FALSE;
            }
 else             if (value.equals("String_Node_Str")) {
              tristate=Tristate.UNDEFINED;
            }
            create.eSet(create.eClass().getEStructuralFeature(WRAPPED_VALUE),tristate);
          }
        }
        return create;
      }
 else {
        return processInline(classifier,value);
      }
    }
 else     if (classifier instanceof EDataType) {
      return convertSimpleValue(classifier.getInstanceClass(),value);
    }
  }
  return null;
}