Program: 184314
Project: 184314
Buggy source:
EntityDataStore(Function<Entity,Object> keyMaker,DataReposEx dataRepos,Type type){
  this.dataRepos=dataRepos;
  this.values=new SmartList<Object,Entity>(keyMaker);
  this.idMaker=keyMaker;
  this.type=type;
  classificatores=Maps.newHashMap();
  for (  Field f : type.getFields()) {
    if (f.getAttrs().containsKey("String_Node_Str")) {
      if (f.getType().getStandalone() == TypeStandalone.Basic) {
        final String name=f.getName();
        DataClassificator<String,Entity> classificator=new DataClassificator<String,Entity>(new Function<Entity,String>(){
          @Override public String apply(          Entity from){
            return String.valueOf(from.get(name));
          }
        }
);
        this.values.addListener(classificator);
        classificatores.put(name,classificator);
        if (log.isDebugEnabled()) {
          log.debug(type.getName() + "String_Node_Str" + name);
        }
      }
 else       if (f.getRefer() == Reference.ByRef) {
        for (        Field inf : f.getType().getFields()) {
          if (inf.isKey() && inf.getType().getStandalone() == TypeStandalone.Basic) {
            final String name=f.getName() + inf.getName();
            DataClassificator<String,Entity> classificator=new DataClassificator<String,Entity>(new Function<Entity,String>(){
              @Override public String apply(              Entity from){
                return String.valueOf(from.get(name));
              }
            }
);
            this.values.addListener(classificator);
            classificatores.put(name,classificator);
            if (log.isDebugEnabled()) {
              log.debug(type.getName() + "String_Node_Str" + name);
            }
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
EntityDataStore(Function<Entity,Object> keyMaker,DataReposEx dataRepos,Type type){
  this.dataRepos=dataRepos;
  this.values=new SmartList<Object,Entity>(keyMaker);
  this.idMaker=keyMaker;
  this.type=type;
  classificatores=Maps.newHashMap();
  for (  Field f : type.getFields()) {
    if (f.getAttrs().containsKey(Type.GROUP_BY) || f.getAttrs().containsKey(Type.ATTACH)) {
      if (f.getType().getStandalone() == TypeStandalone.Basic) {
        final String name=f.getName();
        DataClassificator<String,Entity> classificator=new DataClassificator<String,Entity>(new Function<Entity,String>(){
          @Override public String apply(          Entity from){
            return String.valueOf(from.get(name));
          }
        }
);
        this.values.addListener(classificator);
        classificatores.put(name,classificator);
        if (log.isDebugEnabled()) {
          log.debug(type.getName() + "String_Node_Str" + name);
        }
      }
 else       if (f.getRefer() == Reference.ByRef) {
        for (        Field inf : f.getType().getFields()) {
          if (inf.isKey() && inf.getType().getStandalone() == TypeStandalone.Basic) {
            final String name=f.getName() + inf.getName();
            DataClassificator<String,Entity> classificator=new DataClassificator<String,Entity>(new Function<Entity,String>(){
              @Override public String apply(              Entity from){
                return String.valueOf(from.get(name));
              }
            }
);
            this.values.addListener(classificator);
            classificatores.put(f.getName(),classificator);
            if (log.isDebugEnabled()) {
              log.debug(type.getName() + "String_Node_Str" + name);
            }
          }
        }
      }
    }
  }
}