Program: 145412
Project: 145412
Buggy source:
public void startEditing(final Cell.Context context,final Element aBoxPositionTemplate,final Element aBoxParent,final C value,ValueUpdater<C> valueUpdater,final Runnable onEditorClose){
  Widget oldParent=editor.getParent();
  if (oldParent == null) {
    final UpdaterRef<C> updaterRef=new UpdaterRef<>(valueUpdater);
    final AutoCloseBox editorBox=new AutoCloseBox(){
      protected void superClose(){
        super.close();
      }
      @Override public void close(){
        Scheduler.get().scheduleDeferred(new ScheduledCommand(){
          @Override public void execute(){
            superClose();
          }
        }
);
      }
    }
;
    valueHost.setValue(value);
    editorBox.setWidget(editor);
    final HandlerRegistration valueChangeReg=valueHost.addValueChangeHandler(new ValueChangeHandler<C>(){
      @Override public void onValueChange(      ValueChangeEvent<C> event){
        if (updaterRef.valueUpdater != null) {
          updaterRef.valueUpdater.update(valueHost.getValue());
        }
      }
    }
);
    editorBox.getElement().setClassName("String_Node_Str");
    editorBox.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
    editorBox.getElement().getStyle().setDisplay(Style.Display.INLINE_BLOCK);
    editorBox.getElement().getStyle().setPaddingLeft(Grid.LEFT_RIGHT_CELL_PADDING,Style.Unit.PX);
    editorBox.getElement().getStyle().setPaddingRight(Grid.LEFT_RIGHT_CELL_PADDING,Style.Unit.PX);
    editorBox.getElement().getStyle().setFontSize(0,Style.Unit.PT);
    editorBox.getElement().getStyle().setWidth(aBoxPositionTemplate.getClientWidth(),Style.Unit.PX);
    editorBox.getElement().getStyle().setHeight(aBoxPositionTemplate.getClientHeight(),Style.Unit.PX);
    editorBox.getElement().getStyle().setLeft(aBoxPositionTemplate.getAbsoluteLeft() - aBoxParent.getAbsoluteLeft() - Grid.LEFT_RIGHT_CELL_PADDING,Style.Unit.PX);
    editorBox.getElement().getStyle().setTop(aBoxPositionTemplate.getAbsoluteTop() - aBoxParent.getAbsoluteTop(),Style.Unit.PX);
    final HandlerRegistration editorKeyDownReg=editor.addDomHandler(new KeyDownHandler(){
      @Override public void onKeyDown(      KeyDownEvent event){
        if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ESCAPE) {
          updaterRef.valueUpdater=null;
          valueHost.setValue(null);
          editorBox.close();
        }
 else         if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) {
          Scheduler.get().scheduleDeferred(new ScheduledCommand(){
            @Override public void execute(){
              updaterRef.valueUpdater=null;
              valueHost.setValue(null);
              editorBox.close();
            }
          }
);
        }
      }
    }
,KeyDownEvent.getType());
    editorBox.addCloseHandler(new CloseHandler<AutoCloseBox>(){
      @Override public void onClose(      CloseEvent<AutoCloseBox> event){
        valueChangeReg.removeHandler();
        editorKeyDownReg.removeHandler();
        editorBox.setWidget(null);
        editor.removeFromParent();
        setViewData(context.getKey(),null);
        if (onEditorClose != null)         onEditorClose.run();
      }
    }
);
    editorBox.show(aBoxParent);
    Scheduler.get().scheduleDeferred(new ScheduledCommand(){
      @Override public void execute(){
        if (editor.isAttached() && focusHost != null) {
          focusHost.setFocus(true);
        }
      }
    }
);
  }
}

Fixed version (ground truth):
public void startEditing(final Cell.Context context,final Element aBoxPositionTemplate,final Element aBoxParent,final C value,ValueUpdater<C> valueUpdater,final Runnable onEditorClose){
  Widget oldParent=editor.getParent();
  if (oldParent == null) {
    final UpdaterRef<C> updaterRef=new UpdaterRef<>(valueUpdater);
    final AutoCloseBox editorBox=new AutoCloseBox(){
      protected void superClose(){
        super.close();
      }
      @Override public void close(){
        Scheduler.get().scheduleDeferred(new ScheduledCommand(){
          @Override public void execute(){
            superClose();
          }
        }
);
      }
    }
;
    valueHost.setValue(value);
    editorBox.setWidget(editor);
    final HandlerRegistration valueChangeReg=valueHost.addValueChangeHandler(new ValueChangeHandler<C>(){
      @Override public void onValueChange(      ValueChangeEvent<C> event){
        if (updaterRef.valueUpdater != null) {
          updaterRef.valueUpdater.update(valueHost.getValue());
        }
      }
    }
);
    editorBox.getElement().setClassName("String_Node_Str");
    editorBox.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
    editorBox.getElement().getStyle().setDisplay(Style.Display.INLINE_BLOCK);
    editorBox.getElement().getStyle().setPaddingLeft(Grid.LEFT_RIGHT_CELL_PADDING,Style.Unit.PX);
    editorBox.getElement().getStyle().setPaddingRight(Grid.LEFT_RIGHT_CELL_PADDING,Style.Unit.PX);
    editorBox.getElement().getStyle().setWidth(aBoxPositionTemplate.getClientWidth(),Style.Unit.PX);
    editorBox.getElement().getStyle().setHeight(aBoxPositionTemplate.getClientHeight(),Style.Unit.PX);
    editorBox.getElement().getStyle().setLeft(aBoxPositionTemplate.getAbsoluteLeft() - aBoxParent.getAbsoluteLeft() - Grid.LEFT_RIGHT_CELL_PADDING,Style.Unit.PX);
    editorBox.getElement().getStyle().setTop(aBoxPositionTemplate.getAbsoluteTop() - aBoxParent.getAbsoluteTop(),Style.Unit.PX);
    final HandlerRegistration editorKeyDownReg=editor.addDomHandler(new KeyDownHandler(){
      @Override public void onKeyDown(      KeyDownEvent event){
        if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ESCAPE) {
          updaterRef.valueUpdater=null;
          valueHost.setValue(null);
          editorBox.close();
        }
 else         if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) {
          Scheduler.get().scheduleDeferred(new ScheduledCommand(){
            @Override public void execute(){
              updaterRef.valueUpdater=null;
              valueHost.setValue(null);
              editorBox.close();
            }
          }
);
        }
      }
    }
,KeyDownEvent.getType());
    editorBox.addCloseHandler(new CloseHandler<AutoCloseBox>(){
      @Override public void onClose(      CloseEvent<AutoCloseBox> event){
        valueChangeReg.removeHandler();
        editorKeyDownReg.removeHandler();
        editorBox.setWidget(null);
        editor.removeFromParent();
        setViewData(context.getKey(),null);
        if (onEditorClose != null)         onEditorClose.run();
      }
    }
);
    editorBox.show(aBoxParent);
    Scheduler.get().scheduleDeferred(new ScheduledCommand(){
      @Override public void execute(){
        if (editor.isAttached() && focusHost != null) {
          focusHost.setFocus(true);
        }
      }
    }
);
  }
}