Program: 35566
Project: 35566
Buggy source:
/** 
 * {@inheritDoc}
 */
@Override public void onBind(){
  final CheckColumnConfig remindersCheckPlugin=(CheckColumnConfig)view.getRemindersGrid().getColumnModel().getColumn(0);
  if (ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_PROJECT) && (ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_ALL_REMINDERS) || ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_OWN_REMINDERS))) {
    view.getRemindersGrid().addPlugin(remindersCheckPlugin);
  }
  final CheckColumnConfig monitoredPointsCheckPlugin=(CheckColumnConfig)view.getMonitoredPointsGrid().getColumnModel().getColumn(0);
  if (ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_PROJECT)) {
    view.getMonitoredPointsGrid().addPlugin(monitoredPointsCheckPlugin);
  }
  view.getReminderAddButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
    @Override public void componentSelected(    final ButtonEvent event){
      eventBus.navigateRequest(Page.REMINDER_EDIT.requestWith(RequestParameter.TYPE,ReminderType.REMINDER).addParameter(RequestParameter.ID,getProject().getId()));
    }
  }
);
  view.getMonitoredPointsAddButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
    @Override public void componentSelected(    final ButtonEvent event){
      eventBus.navigateRequest(Page.REMINDER_EDIT.requestWith(RequestParameter.TYPE,ReminderType.MONITORED_POINT).addParameter(RequestParameter.ID,getProject().getId()));
    }
  }
);
  view.getRemindersGrid().getStore().addListener(Store.Update,new Listener<StoreEvent<ReminderDTO>>(){
    @Override public void handleEvent(    final StoreEvent<ReminderDTO> event){
      if (event.getOperation() == RecordUpdate.EDIT) {
        onReminderUpdate(event.getModel());
      }
    }
  }
);
  view.getMonitoredPointsGrid().getStore().addListener(Store.Update,new Listener<StoreEvent<MonitoredPointDTO>>(){
    @Override public void handleEvent(    final StoreEvent<MonitoredPointDTO> event){
      if (event.getOperation() == RecordUpdate.EDIT) {
        onMonitoredPointUpdate(event.getModel());
      }
    }
  }
);
  view.setPresenterHandler(new PresenterHandler(){
    /** 
 * {@inheritDoc}
 */
    @Override public boolean isAuthorizedToEditReminder(){
      return ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_PROJECT) && (ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_ALL_REMINDERS) || ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_OWN_REMINDERS));
    }
    /** 
 * {@inheritDoc}
 */
    @Override public boolean isAuthor(    final EntityDTO<?> reminderOrMonitoredPoint){
      boolean creator=false;
      if (reminderOrMonitoredPoint instanceof ReminderDTO) {
        final ReminderDTO reminder=(ReminderDTO)reminderOrMonitoredPoint;
        for (        final ReminderHistoryDTO hist : reminder.getHistory()) {
          if (hist.getType() == ReminderChangeType.CREATED) {
            creator=auth().getUserId().equals(hist.getUserId());
          }
        }
      }
 else       if (reminderOrMonitoredPoint instanceof MonitoredPointDTO) {
        final MonitoredPointDTO monitoredPoint=(MonitoredPointDTO)reminderOrMonitoredPoint;
        for (        final MonitoredPointHistoryDTO hist : monitoredPoint.getHistory()) {
          if (hist.getType() == ReminderChangeType.CREATED) {
            creator=auth().getUserId().equals(hist.getUserId());
          }
        }
      }
      return creator && ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_OWN_REMINDERS) || ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_ALL_REMINDERS);
    }
    /** 
 * {@inheritDoc}
 */
    @Override public void onLabelClickEvent(    final EntityDTO<?> reminderOrMonitoredPoint){
      eventBus.navigateRequest(Page.REMINDER_EDIT.requestWith(RequestParameter.TYPE,ReminderType.fromDTO(reminderOrMonitoredPoint)).addParameter(RequestParameter.ID,getProject().getId()).addData(RequestParameter.DTO,reminderOrMonitoredPoint));
    }
    /** 
 * {@inheritDoc}
 */
    @Override public void onShowHistoryEvent(    final EntityDTO<?> reminderOrMonitoredPoint){
      if (reminderOrMonitoredPoint == null) {
        return;
      }
      eventBus.navigateRequest(Page.REMINDER_HISTORY.request().addData(RequestParameter.DTO,reminderOrMonitoredPoint));
    }
    /** 
 * {@inheritDoc}
 */
    @Override public ProjectModelType getProjectModelType(    final ProjectDTO project){
      return project.getProjectModelType(auth().getOrganizationId());
    }
    /** 
 * {@inheritDoc}
 */
    @Override public void onLinkedProjectClickEvent(    final ProjectDTO project){
      eventBus.navigateRequest(Page.PROJECT_DASHBOARD.requestWith(RequestParameter.ID,project.getId()));
    }
    /** 
 * {@inheritDoc}
 */
    @Override public void onLinkedProjectEditClickEvent(    final ProjectFundingDTO projectFunding,    final LinkedProjectType type){
      eventBus.navigateRequest(Page.LINKED_PROJECT.requestWith(RequestParameter.TYPE,type).addData(RequestParameter.HEADER,getProject()).addData(RequestParameter.DTO,projectFunding));
    }
  }
);
  registerHandler(eventBus.addHandler(UpdateEvent.getType(),new UpdateHandler(){
    @Override public void onUpdate(    final UpdateEvent event){
      if (event.concern(UpdateEvent.REMINDER_UPDATED)) {
        final ReminderType reminderType=event.getParam(0);
        if (reminderType == ReminderType.REMINDER) {
          loadReminders();
        }
 else         if (reminderType == ReminderType.MONITORED_POINT) {
          loadMonitoredPoints();
        }
      }
 else       if (event.concern(UpdateEvent.LINKED_PROJECT_UPDATE)) {
        final LinkedProjectType linkedProjectType=event.getParam(0);
        loadLinkedProjects(linkedProjectType);
      }
 else       if (event.concern(UpdateEvent.LINKED_PROJECT_DELETE)) {
        final LinkedProjectType linkedProjectType=event.getParam(0);
        final ProjectFundingDTO linkedProject=event.getParam(1);
        onLinkedProjectDeleteAction(linkedProjectType,linkedProject);
      }
 else       if (event.concern(UpdateEvent.PROJECT_CREATE)) {
        final CreateProjectPresenter.Mode mode=event.getParam(0);
switch (mode) {
case FUNDING_ANOTHER_PROJECT:
          createFundingLink(event.<ProjectDTO>getParam(1),event.<Double>getParam(2));
        break;
case FUNDED_BY_ANOTHER_PROJECT:
      break;
default :
    break;
}
}
}
}
));
view.getFundingProjectSelectButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
@Override public void componentSelected(final ButtonEvent ce){
eventBus.navigateRequest(Page.LINKED_PROJECT.requestWith(RequestParameter.TYPE,LinkedProjectType.FUNDING_PROJECT).addData(RequestParameter.HEADER,getProject()));
}
}
);
view.getFundingProjectCreateButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
@Override public void componentSelected(final ButtonEvent ce){
eventBus.navigateRequest(Page.CREATE_PROJECT.requestWith(RequestParameter.TYPE,CreateProjectPresenter.Mode.FUNDING_ANOTHER_PROJECT).addData(RequestParameter.DTO,getProject()));
}
}
);
view.getFundedProjectSelectButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
@Override public void componentSelected(final ButtonEvent ce){
eventBus.navigateRequest(Page.LINKED_PROJECT.requestWith(RequestParameter.TYPE,LinkedProjectType.FUNDED_PROJECT).addData(RequestParameter.HEADER,getProject()));
}
}
);
view.getFundedProjectCreateButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
@Override public void componentSelected(final ButtonEvent ce){
eventBus.navigateRequest(Page.CREATE_PROJECT.requestWith(RequestParameter.TYPE,CreateProjectPresenter.Mode.FUNDED_BY_ANOTHER_PROJECT).addData(RequestParameter.DTO,getProject()));
}
}
);
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void onBind(){
  final CheckColumnConfig remindersCheckPlugin=(CheckColumnConfig)view.getRemindersGrid().getColumnModel().getColumn(0);
  if (ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_PROJECT) && (ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_ALL_REMINDERS) || ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_OWN_REMINDERS))) {
    view.getRemindersGrid().addPlugin(remindersCheckPlugin);
  }
  final CheckColumnConfig monitoredPointsCheckPlugin=(CheckColumnConfig)view.getMonitoredPointsGrid().getColumnModel().getColumn(0);
  if (ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_PROJECT)) {
    view.getMonitoredPointsGrid().addPlugin(monitoredPointsCheckPlugin);
  }
  view.getReminderAddButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
    @Override public void componentSelected(    final ButtonEvent event){
      eventBus.navigateRequest(Page.REMINDER_EDIT.requestWith(RequestParameter.TYPE,ReminderType.REMINDER).addParameter(RequestParameter.ID,getProject().getId()));
    }
  }
);
  view.getMonitoredPointsAddButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
    @Override public void componentSelected(    final ButtonEvent event){
      eventBus.navigateRequest(Page.REMINDER_EDIT.requestWith(RequestParameter.TYPE,ReminderType.MONITORED_POINT).addParameter(RequestParameter.ID,getProject().getId()));
    }
  }
);
  view.getRemindersGrid().getStore().addListener(Store.Update,new Listener<StoreEvent<ReminderDTO>>(){
    @Override public void handleEvent(    final StoreEvent<ReminderDTO> event){
      if (event.getOperation() == RecordUpdate.EDIT) {
        onReminderUpdate(event.getModel());
      }
    }
  }
);
  view.getMonitoredPointsGrid().getStore().addListener(Store.Update,new Listener<StoreEvent<MonitoredPointDTO>>(){
    @Override public void handleEvent(    final StoreEvent<MonitoredPointDTO> event){
      if (event.getOperation() == RecordUpdate.EDIT) {
        onMonitoredPointUpdate(event.getModel());
      }
    }
  }
);
  view.setPresenterHandler(new PresenterHandler(){
    /** 
 * {@inheritDoc}
 */
    @Override public boolean isAuthorizedToEditReminder(){
      return ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_PROJECT) && (ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_ALL_REMINDERS) || ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_OWN_REMINDERS));
    }
    /** 
 * {@inheritDoc}
 */
    @Override public boolean isAuthor(    final EntityDTO<?> reminderOrMonitoredPoint){
      boolean creator=false;
      if (reminderOrMonitoredPoint instanceof ReminderDTO) {
        final ReminderDTO reminder=(ReminderDTO)reminderOrMonitoredPoint;
        for (        final ReminderHistoryDTO hist : reminder.getHistory()) {
          if (hist.getType() == ReminderChangeType.CREATED) {
            creator=auth().getUserId().equals(hist.getUserId());
          }
        }
      }
 else       if (reminderOrMonitoredPoint instanceof MonitoredPointDTO) {
        final MonitoredPointDTO monitoredPoint=(MonitoredPointDTO)reminderOrMonitoredPoint;
        for (        final MonitoredPointHistoryDTO hist : monitoredPoint.getHistory()) {
          if (hist.getType() == ReminderChangeType.CREATED) {
            creator=auth().getUserId().equals(hist.getUserId());
          }
        }
      }
      return creator && ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_OWN_REMINDERS) || ProfileUtils.isGranted(auth(),GlobalPermissionEnum.EDIT_ALL_REMINDERS);
    }
    /** 
 * {@inheritDoc}
 */
    @Override public void onLabelClickEvent(    final EntityDTO<?> reminderOrMonitoredPoint){
      eventBus.navigateRequest(Page.REMINDER_EDIT.requestWith(RequestParameter.TYPE,ReminderType.fromDTO(reminderOrMonitoredPoint)).addParameter(RequestParameter.ID,getProject().getId()).addData(RequestParameter.DTO,reminderOrMonitoredPoint));
    }
    /** 
 * {@inheritDoc}
 */
    @Override public void onShowHistoryEvent(    final EntityDTO<?> reminderOrMonitoredPoint){
      if (reminderOrMonitoredPoint == null) {
        return;
      }
      eventBus.navigateRequest(Page.REMINDER_HISTORY.request().addData(RequestParameter.DTO,reminderOrMonitoredPoint));
    }
    /** 
 * {@inheritDoc}
 */
    @Override public ProjectModelType getProjectModelType(    final ProjectDTO project){
      return project.getProjectModelType(auth().getOrganizationId());
    }
    /** 
 * {@inheritDoc}
 */
    @Override public void onLinkedProjectClickEvent(    final ProjectDTO project){
      eventBus.navigateRequest(Page.PROJECT_DASHBOARD.requestWith(RequestParameter.ID,project.getId()));
    }
    /** 
 * {@inheritDoc}
 */
    @Override public void onLinkedProjectEditClickEvent(    final ProjectFundingDTO projectFunding,    final LinkedProjectType type){
      eventBus.navigateRequest(Page.LINKED_PROJECT.requestWith(RequestParameter.TYPE,type).addData(RequestParameter.HEADER,getProject()).addData(RequestParameter.DTO,projectFunding));
    }
  }
);
  registerHandler(eventBus.addHandler(UpdateEvent.getType(),new UpdateHandler(){
    @Override public void onUpdate(    final UpdateEvent event){
      if (event.concern(UpdateEvent.REMINDER_UPDATED)) {
        final ReminderType reminderType=event.getParam(0);
        if (reminderType == ReminderType.REMINDER) {
          loadReminders();
        }
 else         if (reminderType == ReminderType.MONITORED_POINT) {
          loadMonitoredPoints();
        }
      }
 else       if (event.concern(UpdateEvent.LINKED_PROJECT_UPDATE)) {
        final LinkedProjectType linkedProjectType=event.getParam(0);
        loadLinkedProjects(linkedProjectType);
      }
 else       if (event.concern(UpdateEvent.LINKED_PROJECT_DELETE)) {
        final LinkedProjectType linkedProjectType=event.getParam(0);
        final ProjectFundingDTO linkedProject=event.getParam(1);
        onLinkedProjectDeleteAction(linkedProjectType,linkedProject);
      }
 else       if (event.concern(UpdateEvent.PROJECT_CREATE)) {
        final CreateProjectPresenter.Mode mode=event.getParam(0);
switch (mode) {
case FUNDING_ANOTHER_PROJECT:
          loadLinkedProjects(LinkedProjectType.FUNDING_PROJECT);
        break;
case FUNDED_BY_ANOTHER_PROJECT:
      loadLinkedProjects(LinkedProjectType.FUNDED_PROJECT);
    break;
default :
  break;
}
}
}
}
));
view.getFundingProjectSelectButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
@Override public void componentSelected(final ButtonEvent ce){
eventBus.navigateRequest(Page.LINKED_PROJECT.requestWith(RequestParameter.TYPE,LinkedProjectType.FUNDING_PROJECT).addData(RequestParameter.HEADER,getProject()));
}
}
);
view.getFundingProjectCreateButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
@Override public void componentSelected(final ButtonEvent ce){
eventBus.navigateRequest(Page.CREATE_PROJECT.requestWith(RequestParameter.TYPE,CreateProjectPresenter.Mode.FUNDING_ANOTHER_PROJECT).addData(RequestParameter.DTO,getProject()));
}
}
);
view.getFundedProjectSelectButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
@Override public void componentSelected(final ButtonEvent ce){
eventBus.navigateRequest(Page.LINKED_PROJECT.requestWith(RequestParameter.TYPE,LinkedProjectType.FUNDED_PROJECT).addData(RequestParameter.HEADER,getProject()));
}
}
);
view.getFundedProjectCreateButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
@Override public void componentSelected(final ButtonEvent ce){
eventBus.navigateRequest(Page.CREATE_PROJECT.requestWith(RequestParameter.TYPE,CreateProjectPresenter.Mode.FUNDED_BY_ANOTHER_PROJECT).addData(RequestParameter.DTO,getProject()));
}
}
);
}