Program: 35718
Project: 35718
Buggy source:
public NavigationPanel(final EventBus eventBus,final Navigator navigator){
  this.eventBus=eventBus;
  this.setHeading(navigator.getHeading());
  this.setScrollMode(Scroll.NONE);
  this.setLayout(new FitLayout());
  loader=new BaseTreeLoader<Link>(navigator){
    @Override public boolean hasChildren(    Link parent){
      return navigator.hasChildren(parent);
    }
  }
;
  store=new TreeStore<Link>(loader);
  store.setKeyProvider(new ModelKeyProvider<Link>(){
    @Override public String getKey(    Link link){
      if (link.getParent() == null) {
        return link.getName();
      }
 else {
        return ((Link)link.getParent()).getName() + "String_Node_Str" + link.getName();
      }
    }
  }
);
  tree=new TreePanel<Link>(store);
  tree.setStateful(true);
  tree.setStateId(navigator.getStateId());
  tree.setDisplayProperty("String_Node_Str");
  tree.setAutoLoad(true);
  tree.setIconProvider(new ModelIconProvider<Link>(){
    @Override public AbstractImagePrototype getIcon(    Link model){
      return model.getIcon();
    }
  }
);
  tree.addListener(Events.OnClick,new Listener<TreePanelEvent<Link>>(){
    @Override public void handleEvent(    TreePanelEvent<Link> tpe){
      if (tpe.getItem().getPageState() != null) {
        eventBus.fireEvent(new NavigationEvent(NavigationHandler.NavigationRequested,tpe.getItem().getPageState()));
      }
    }
  }
);
  navListener=new Listener<NavigationEvent>(){
    public void handleEvent(    NavigationEvent be){
      onNavigated(be.getPlace());
    }
  }
;
  eventBus.addListener(NavigationHandler.NavigationAgreed,navListener);
  changeListener=new Listener<BaseEvent>(){
    public void handleEvent(    BaseEvent be){
      loader.load();
    }
  }
;
  eventBus.addListener(AppEvents.SchemaChanged,changeListener);
  this.add(tree);
}

Fixed version (ground truth):
public NavigationPanel(final EventBus eventBus,final Navigator navigator){
  this.eventBus=eventBus;
  this.setHeading(navigator.getHeading());
  this.setScrollMode(Scroll.NONE);
  this.setLayout(new FitLayout());
  loader=new BaseTreeLoader<Link>(navigator){
    @Override public boolean hasChildren(    Link parent){
      return navigator.hasChildren(parent);
    }
  }
;
  store=new TreeStore<Link>(loader);
  store.setKeyProvider(new ModelKeyProvider<Link>(){
    @Override public String getKey(    Link link){
      return link.getKey();
    }
  }
);
  tree=new TreePanel<Link>(store);
  tree.setStateful(true);
  tree.setStateId(navigator.getStateId());
  tree.setDisplayProperty("String_Node_Str");
  tree.setAutoLoad(true);
  tree.setIconProvider(new ModelIconProvider<Link>(){
    @Override public AbstractImagePrototype getIcon(    Link model){
      return model.getIcon();
    }
  }
);
  tree.addListener(Events.OnClick,new Listener<TreePanelEvent<Link>>(){
    @Override public void handleEvent(    TreePanelEvent<Link> tpe){
      if (tpe.getItem().getPageState() != null) {
        eventBus.fireEvent(new NavigationEvent(NavigationHandler.NavigationRequested,tpe.getItem().getPageState()));
      }
    }
  }
);
  navListener=new Listener<NavigationEvent>(){
    public void handleEvent(    NavigationEvent be){
      onNavigated(be.getPlace());
    }
  }
;
  eventBus.addListener(NavigationHandler.NavigationAgreed,navListener);
  changeListener=new Listener<BaseEvent>(){
    public void handleEvent(    BaseEvent be){
      loader.load();
    }
  }
;
  eventBus.addListener(AppEvents.SchemaChanged,changeListener);
  this.add(tree);
}