Program: 167512
Project: 167512
Buggy source:
protected TreeTable buildTreeTable(){
  final TreeTable table=new TreeTable();
  table.addStyleName(ValoTheme.TREETABLE_NO_HORIZONTAL_LINES);
  table.addStyleName(ValoTheme.TREETABLE_NO_STRIPES);
  table.addStyleName(ValoTheme.TREETABLE_NO_VERTICAL_LINES);
  table.addStyleName(ValoTheme.TREETABLE_BORDERLESS);
  table.addStyleName("String_Node_Str");
  table.setColumnHeaderMode(ColumnHeaderMode.HIDDEN);
  table.setItemCaptionMode(ItemCaptionMode.EXPLICIT);
  table.setSizeFull();
  table.setCacheRate(100);
  table.setPageLength(100);
  table.setImmediate(true);
  table.setSelectable(true);
  table.setEditable(true);
  table.setContainerDataSource(new BeanItemContainer<AbstractObject>(AbstractObject.class));
  table.setTableFieldFactory(new DefaultFieldFactory(){
    @Override public Field<?> createField(    Container container,    Object itemId,    Object propertyId,    Component uiContext){
      return buildEditableNavigatorField(itemId);
    }
  }
);
  table.setVisibleColumns(new Object[]{"String_Node_Str"});
  table.setColumnExpandRatio("String_Node_Str",1);
  treeTableDeleteKeyShortcutListener=new ShortcutListener("String_Node_Str",KeyCode.DELETE,null){
    private static final long serialVersionUID=1L;
    @Override public void handleAction(    Object sender,    Object target){
      if (delete.isEnabled()) {
        handleDelete();
      }
    }
  }
;
  table.addShortcutListener(treeTableDeleteKeyShortcutListener);
  treeTableEnterKeyShortcutListener=new ShortcutListener("String_Node_Str",KeyCode.ENTER,null){
    private static final long serialVersionUID=1L;
    @Override public void handleAction(    Object sender,    Object target){
      open(treeTable.getValue());
    }
  }
;
  table.addValueChangeListener(new ValueChangeListener(){
    private static final long serialVersionUID=1L;
    @Override public void valueChange(    ValueChangeEvent event){
      selectionChanged(event);
    }
  }
);
  table.addItemClickListener(new ItemClickListener(){
    private static final long serialVersionUID=1L;
    @Override public void itemClick(    ItemClickEvent event){
      if (event.getButton() == MouseButton.LEFT) {
        if (event.isDoubleClick()) {
          abortEditingItem();
          open(event.getItemId());
          itemClicked=null;
          if (table.areChildrenAllowed(event.getItemId())) {
            Object item=event.getItemId();
            table.setCollapsed(item,!table.isCollapsed(item));
          }
        }
 else {
          if (itemClicked != null && itemClicked.equals(event.getItemId())) {
            long timeSinceClick=System.currentTimeMillis() - itemClickTimeInMs;
            if (timeSinceClick > 600 && timeSinceClick < 2000) {
              startEditingItem(itemClicked);
            }
 else {
              itemClicked=null;
            }
          }
 else           if (event.getItemId() instanceof AbstractObject) {
            itemClicked=(AbstractObject)event.getItemId();
            itemClickTimeInMs=System.currentTimeMillis();
          }
        }
      }
    }
  }
);
  table.addExpandListener(new ExpandListener(){
    @Override public void nodeExpand(    ExpandEvent event){
      if (event.getItemId() instanceof Folder) {
        table.setItemIcon(event.getItemId(),Icons.FOLDER_OPEN);
      }
    }
  }
);
  table.addCollapseListener(new CollapseListener(){
    @Override public void nodeCollapse(    CollapseEvent event){
      if (event.getItemId() instanceof Folder) {
        table.setItemIcon(event.getItemId(),Icons.FOLDER_CLOSED);
      }
    }
  }
);
  table.setCellStyleGenerator(new CellStyleGenerator(){
    private static final long serialVersionUID=1L;
    @Override public String getStyle(    Table source,    Object itemId,    Object propertyId){
      if (itemId instanceof Folder && "String_Node_Str".equals(propertyId)) {
        return "String_Node_Str";
      }
 else {
        return null;
      }
    }
  }
);
  return table;
}

Fixed version (ground truth):
protected TreeTable buildTreeTable(){
  final TreeTable table=new TreeTable();
  table.addStyleName(ValoTheme.TREETABLE_NO_HORIZONTAL_LINES);
  table.addStyleName(ValoTheme.TREETABLE_NO_STRIPES);
  table.addStyleName(ValoTheme.TREETABLE_NO_VERTICAL_LINES);
  table.addStyleName(ValoTheme.TREETABLE_BORDERLESS);
  table.addStyleName("String_Node_Str");
  table.setColumnHeaderMode(ColumnHeaderMode.HIDDEN);
  table.setItemCaptionMode(ItemCaptionMode.EXPLICIT);
  table.setSizeFull();
  table.setCacheRate(100);
  table.setPageLength(100);
  table.setImmediate(true);
  table.setSelectable(true);
  table.setEditable(true);
  table.setContainerDataSource(new BeanItemContainer<AbstractObject>(AbstractObject.class));
  table.setTableFieldFactory(new DefaultFieldFactory(){
    @Override public Field<?> createField(    Container container,    Object itemId,    Object propertyId,    Component uiContext){
      return buildEditableNavigatorField(itemId);
    }
  }
);
  table.setVisibleColumns(new Object[]{"String_Node_Str"});
  table.setColumnExpandRatio("String_Node_Str",1);
  treeTableDeleteKeyShortcutListener=new ShortcutListener("String_Node_Str",KeyCode.DELETE,null){
    private static final long serialVersionUID=1L;
    @Override public void handleAction(    Object sender,    Object target){
      if (delete.isEnabled()) {
        handleDelete();
      }
    }
  }
;
  table.addShortcutListener(treeTableDeleteKeyShortcutListener);
  treeTableEnterKeyShortcutListener=new ShortcutListener("String_Node_Str",KeyCode.ENTER,null){
    private static final long serialVersionUID=1L;
    @Override public void handleAction(    Object sender,    Object target){
      open(treeTable.getValue());
    }
  }
;
  table.addValueChangeListener(new ValueChangeListener(){
    private static final long serialVersionUID=1L;
    @Override public void valueChange(    ValueChangeEvent event){
      selectionChanged();
    }
  }
);
  table.addItemClickListener(new ItemClickListener(){
    private static final long serialVersionUID=1L;
    @Override public void itemClick(    ItemClickEvent event){
      if (event.getButton() == MouseButton.LEFT) {
        if (event.isDoubleClick()) {
          abortEditingItem();
          open(event.getItemId());
          itemClicked=null;
          if (table.areChildrenAllowed(event.getItemId())) {
            Object item=event.getItemId();
            table.setCollapsed(item,!table.isCollapsed(item));
          }
        }
 else {
          if (itemClicked != null && itemClicked.equals(event.getItemId())) {
            long timeSinceClick=System.currentTimeMillis() - itemClickTimeInMs;
            if (timeSinceClick > 600 && timeSinceClick < 2000) {
              startEditingItem(itemClicked);
            }
 else {
              itemClicked=null;
            }
          }
 else           if (event.getItemId() instanceof AbstractObject) {
            itemClicked=(AbstractObject)event.getItemId();
            itemClickTimeInMs=System.currentTimeMillis();
          }
        }
      }
    }
  }
);
  table.addExpandListener(new ExpandListener(){
    @Override public void nodeExpand(    ExpandEvent event){
      if (event.getItemId() instanceof Folder) {
        table.setItemIcon(event.getItemId(),Icons.FOLDER_OPEN);
      }
    }
  }
);
  table.addCollapseListener(new CollapseListener(){
    @Override public void nodeCollapse(    CollapseEvent event){
      if (event.getItemId() instanceof Folder) {
        table.setItemIcon(event.getItemId(),Icons.FOLDER_CLOSED);
      }
    }
  }
);
  table.setCellStyleGenerator(new CellStyleGenerator(){
    private static final long serialVersionUID=1L;
    @Override public String getStyle(    Table source,    Object itemId,    Object propertyId){
      if (itemId instanceof Folder && "String_Node_Str".equals(propertyId)) {
        return "String_Node_Str";
      }
 else {
        return null;
      }
    }
  }
);
  return table;
}