Program: 2630
Project: 2630
Buggy source:
public RoomPresenter(final HablarEventBus eventBus,final Room room,final RoomDisplay display){
  super(TYPE,"String_Node_Str" + ++id,eventBus,display);
  this.room=room;
  display.setId(getId());
  new OccupantsPresenter(room,display.createOccupantsDisplay(room.getID()));
  final Session session=Suco.get(Session.class);
  final String me=session.getCurrentUser().getNode();
  final String roomName=RoomName.decode(room.getURI().getNode());
  setVisibility(Visibility.notFocused);
  model.init(HablarIcons.get(IconType.roster),roomName);
  model.setCloseable(true);
  room.onMessageReceived(new Listener<Message>(){
    @Override public void onEvent(    final Message message){
      final String body=ChatMessageFormatter.format(message.getBody());
      if (body != null) {
        final String from=message.getFrom().getResource();
        if (me.equals(from)) {
          display.addMessage("String_Node_Str",body,ChatDisplay.MessageType.sent);
        }
 else {
          display.addMessage(from,body,ChatDisplay.MessageType.incoming);
          fireUserMessage(roomName,from,body);
        }
      }
    }
  }
);
  room.onStateChanged(new Listener<State>(){
    @Override public void onEvent(    final State state){
      setState(state);
    }
  }
);
  setState(room.getState());
  display.getAction().addClickHandler(new ClickHandler(){
    @Override public void onClick(    final ClickEvent event){
      sendMessage(room,display);
    }
  }
);
  display.getTextBox().addKeyDownHandler(new KeyDownHandler(){
    @Override public void onKeyDown(    final KeyDownEvent event){
      if (event.getNativeKeyCode() == 13) {
        event.stopPropagation();
        event.preventDefault();
        sendMessage(room,display);
      }
    }
  }
);
}

Fixed version (ground truth):
public RoomPresenter(final HablarEventBus eventBus,final Room room,final RoomDisplay display){
  super(TYPE,"String_Node_Str" + ++id,eventBus,display);
  this.room=room;
  display.setId(getId());
  new OccupantsPresenter(room,display.createOccupantsDisplay(room.getID()));
  final Session session=Suco.get(Session.class);
  final String me=session.getCurrentUser().getNode();
  final String roomName=RoomName.decode(room.getURI().getNode());
  setVisibility(Visibility.notFocused);
  model.init(HablarIcons.get(IconType.roster),roomName,roomName);
  model.setCloseable(true);
  room.onMessageReceived(new Listener<Message>(){
    @Override public void onEvent(    final Message message){
      final String body=ChatMessageFormatter.format(message.getBody());
      if (body != null) {
        final String from=message.getFrom().getResource();
        if (me.equals(from)) {
          display.addMessage("String_Node_Str",body,ChatDisplay.MessageType.sent);
        }
 else {
          display.addMessage(from,body,ChatDisplay.MessageType.incoming);
          fireUserMessage(roomName,from,body);
        }
      }
    }
  }
);
  room.onStateChanged(new Listener<State>(){
    @Override public void onEvent(    final State state){
      setState(state);
    }
  }
);
  setState(room.getState());
  display.getAction().addClickHandler(new ClickHandler(){
    @Override public void onClick(    final ClickEvent event){
      sendMessage(room,display);
    }
  }
);
  display.getTextBox().addKeyDownHandler(new KeyDownHandler(){
    @Override public void onKeyDown(    final KeyDownEvent event){
      if (event.getNativeKeyCode() == 13) {
        event.stopPropagation();
        event.preventDefault();
        sendMessage(room,display);
      }
    }
  }
);
}