Program: 97869
Project: 97869
Buggy source:
private Object createProxy(byte[] rowKey,Row row){
  Object newproxy=null;
  try {
    newproxy=classMeta.getMetaClass().newInstance();
  }
 catch (  InstantiationException e) {
    throw new UnsupportedOperationException("String_Node_Str");
  }
catch (  IllegalAccessException e) {
    throw new UnsupportedOperationException("String_Node_Str");
  }
  DboColumnMeta colMeta=this.getMetaDbo();
  if (classMeta.getIdField() != null && (rowKey != null)) {
    DboColumnEmbedMeta embedMeta=(DboColumnEmbedMeta)colMeta;
    Object idValue1=embedMeta.getFkToColumnFamily().getIdColumnMeta().getStorageType().convertFromNoSql(rowKey);
    ReflectionUtil.putFieldValue(newproxy,classMeta.getIdField().field,idValue1);
    byte[] prefix=StandardConverters.convertToBytes(getColumnName());
    byte[] idBytes=StandardConverters.convertToBytes(idValue1);
    byte[] embedColumn=new byte[prefix.length + idBytes.length];
    System.arraycopy(prefix,0,embedColumn,0,prefix.length);
    System.arraycopy(idBytes,0,embedColumn,prefix.length,idBytes.length);
    Collection<Column> columnsInRow=row.columnByPrefix(embedColumn);
    for (    Column colInRow : columnsInRow) {
      byte[] fullNameCol=colInRow.getName();
      int colLen=fullNameCol.length - embedColumn.length;
      byte[] fk=new byte[colLen];
      for (int i=embedColumn.length; i < fullNameCol.length; i++) {
        fk[i - embedColumn.length]=fullNameCol[i];
      }
      Object colVal=colMeta.convertFromStorage2(fk);
      String colName=colMeta.convertTypeToString(colVal);
      Object columnValue=null;
      MetaField<PROXY> metaField=classMeta.getMetaFieldByCol(null,colName);
      NoSqlConverter customConv=metaField.getField().getAnnotation(NoSqlConverter.class);
      if (customConv != null) {
        columnValue=getValue(colInRow.getValue(),customConv);
      }
 else {
        columnValue=embedMeta.getFkToColumnFamily().getColumnMeta(colName).getStorageType().convertFromNoSql(colInRow.getValue());
      }
      if (metaField != null)       ReflectionUtil.putFieldValue(newproxy,metaField.getField(),columnValue);
    }
  }
 else {
    byte[] colName=StandardConverters.convertToBytes(getColumnName());
    Collection<Column> columnsWORowKey=row.columnByPrefix(colName);
    for (    Column col : columnsWORowKey) {
      byte[] fullName=col.getName();
      int embedColumnLen=fullName.length - colName.length;
      byte[] embedColumn=new byte[embedColumnLen];
      for (int i=colName.length; i < fullName.length; i++) {
        embedColumn[i - colName.length]=fullName[i];
      }
      Object colVal=colMeta.convertFromStorage2(embedColumn);
      String columnName=colMeta.convertTypeToString(colVal);
      DboColumnEmbedMeta embedMeta=(DboColumnEmbedMeta)colMeta;
      if (embedMeta.getFkToColumnFamily().getColumnMeta(columnName) == null)       continue;
      Object columnValue=null;
      MetaField<PROXY> metaField=classMeta.getMetaFieldByCol(null,columnName);
      NoSqlConverter customConv=metaField.getField().getAnnotation(NoSqlConverter.class);
      if (customConv != null) {
        columnValue=getValue(col.getValue(),customConv);
      }
 else {
        columnValue=embedMeta.getFkToColumnFamily().getColumnMeta(columnName).getStorageType().convertFromNoSql(col.getValue());
      }
      if (classMeta.getMetaFieldByCol(null,columnName) != null)       ReflectionUtil.putFieldValue(newproxy,classMeta.getMetaFieldByCol(null,columnName).getField(),columnValue);
    }
  }
  return newproxy;
}

Fixed version (ground truth):
private Object createProxy(byte[] rowKey,Row row){
  Object newproxy=null;
  try {
    newproxy=classMeta.getMetaClass().newInstance();
  }
 catch (  InstantiationException e) {
    throw new UnsupportedOperationException("String_Node_Str");
  }
catch (  IllegalAccessException e) {
    throw new UnsupportedOperationException("String_Node_Str");
  }
  DboColumnMeta colMeta=this.getMetaDbo();
  if (classMeta.getIdField() != null && (rowKey != null)) {
    DboColumnEmbedMeta embedMeta=(DboColumnEmbedMeta)colMeta;
    Object idValue=null;
    MetaField<PROXY> metaFieldId=classMeta.getIdField();
    NoSqlConverter customConvId=metaFieldId.getField().getAnnotation(NoSqlConverter.class);
    byte[] idBytes=null;
    if (customConvId != null) {
      idValue=getValue(rowKey,customConvId);
      idBytes=getBytesValue(idValue,customConvId);
    }
 else {
      idValue=embedMeta.getFkToColumnFamily().getIdColumnMeta().getStorageType().convertFromNoSql(rowKey);
      idBytes=StandardConverters.convertToBytes(idValue);
    }
    if (metaFieldId != null)     ReflectionUtil.putFieldValue(newproxy,metaFieldId.getField(),idValue);
    byte[] prefix=StandardConverters.convertToBytes(getColumnName());
    byte[] embedColumn=new byte[prefix.length + idBytes.length];
    System.arraycopy(prefix,0,embedColumn,0,prefix.length);
    System.arraycopy(idBytes,0,embedColumn,prefix.length,idBytes.length);
    Collection<Column> columnsInRow=row.columnByPrefix(embedColumn);
    for (    Column colInRow : columnsInRow) {
      byte[] fullNameCol=colInRow.getName();
      int colLen=fullNameCol.length - embedColumn.length;
      byte[] fk=new byte[colLen];
      for (int i=embedColumn.length; i < fullNameCol.length; i++) {
        fk[i - embedColumn.length]=fullNameCol[i];
      }
      Object colVal=colMeta.convertFromStorage2(fk);
      String colName=colMeta.convertTypeToString(colVal);
      Object columnValue=null;
      MetaField<PROXY> metaField=classMeta.getMetaFieldByCol(null,colName);
      NoSqlConverter customConv=metaField.getField().getAnnotation(NoSqlConverter.class);
      if (customConv != null) {
        columnValue=getValue(colInRow.getValue(),customConv);
      }
 else {
        columnValue=embedMeta.getFkToColumnFamily().getColumnMeta(colName).getStorageType().convertFromNoSql(colInRow.getValue());
      }
      if (metaField != null)       ReflectionUtil.putFieldValue(newproxy,metaField.getField(),columnValue);
    }
  }
 else {
    createProxy2(colMeta,newproxy,row);
  }
  return newproxy;
}