Program: 189203
Project: 189203
Buggy source:
protected WorkRemainingTable(String id,final Project project,final Set<Issue> issueSet){
  super(id);
  final boolean burndown=Boolean.parseBoolean(project.getConfigurationValue(StoredProject.CONFIGURATION_TIMETRACKING_BURNDOWN));
  List<User> users=new LinkedList<User>();
  for (  Issue issue : issueSet) {
    if (issue.getAssignee() != null && !users.contains(issue.getAssignee())) {
      users.add(issue.getAssignee());
    }
    for (    DurationWorked worked : issue.getTimeWorked()) {
      if (worked.getUser() != null && !users.contains(worked.getUser())) {
        users.add(worked.getUser());
      }
    }
  }
  List<Issue> issues=new LinkedList<Issue>(issueSet);
  Collections.sort(issues,new IssueComparator());
  add(new StripedListView<User>("String_Node_Str",users){
    @Override protected void populateItem(    ListItem<User> listItem){
      super.populateItem(listItem);
      final User user=listItem.getModelObject();
      if (user.isHiddenInTimeTracking()) {
        listItem.setVisible(false);
        return;
      }
      listItem.add(new Label("String_Node_Str",user.getFullnameOrUsername()));
      int estimate=0;
      int worked=0;
      int remaining=0;
      for (      Issue issue : issueSet) {
        if (issue.getAssignee() != null && issue.getAssignee().equals(user)) {
          if (issue.getTimeEstimate() != null && issue.getTimeEstimate().getHours() > 0) {
            double e=issue.getTimeEstimate().getHours();
            estimate+=e;
            if (burndown) {
              if (issue.getTimeRequired() != null) {
                remaining+=issue.getTimeRequired().getHours();
              }
            }
 else {
              if (issue.getTimeRequired() != null) {
                double r=issue.getTimeRequired().getHours();
                double delta=e - r;
                if (delta > 0) {
                  remaining+=delta;
                }
              }
            }
          }
        }
        for (        DurationWorked dur : issue.getTimeWorked()) {
          if (user.equals(dur.getUser()) && dur.getWorked() != null) {
            worked+=dur.getWorked().getHours();
          }
        }
      }
      listItem.add(new Label("String_Node_Str",new Duration(estimate).toHoursWithFractionString()));
      listItem.add(new Label("String_Node_Str",new Duration(worked).toHoursWithFractionString()));
      listItem.add(new Label("String_Node_Str",new Duration(remaining).toHoursWithFractionString()));
    }
  }
);
}

Fixed version (ground truth):
protected WorkRemainingTable(String id,final Project project,final Set<Issue> issueSet){
  super(id);
  final boolean burndown=Boolean.parseBoolean(project.getConfigurationValue(StoredProject.CONFIGURATION_TIMETRACKING_BURNDOWN));
  List<User> users=new LinkedList<User>();
  for (  Issue issue : issueSet) {
    if (issue.getAssignee() != null && !users.contains(issue.getAssignee())) {
      users.add(issue.getAssignee());
    }
    for (    DurationWorked worked : issue.getTimeWorked()) {
      if (worked.getUser() != null && !users.contains(worked.getUser())) {
        users.add(worked.getUser());
      }
    }
  }
  List<Issue> issues=new LinkedList<Issue>(issueSet);
  Collections.sort(issues,new IssueComparator());
  add(new StripedListView<User>("String_Node_Str",users){
    @Override protected void populateItem(    ListItem<User> listItem){
      super.populateItem(listItem);
      final User user=listItem.getModelObject();
      if (user.isHiddenInTimeTracking()) {
        listItem.setVisible(false);
        return;
      }
      listItem.add(new Label("String_Node_Str",user.getFullnameOrUsername()));
      double estimate=0;
      double worked=0;
      double remaining=0;
      for (      Issue issue : issueSet) {
        if (issue.getAssignee() != null && issue.getAssignee().equals(user)) {
          if (issue.getTimeEstimate() != null && issue.getTimeEstimate().getHours() > 0) {
            double e=issue.getTimeEstimate().getHours();
            estimate+=e;
            if (burndown) {
              if (issue.getTimeRequired() != null) {
                remaining+=issue.getTimeRequired().getHours();
              }
            }
 else {
              if (issue.getTimeRequired() != null) {
                double r=issue.getTimeRequired().getHours();
                double delta=e - r;
                if (delta > 0) {
                  remaining+=delta;
                }
              }
            }
          }
        }
        for (        DurationWorked dur : issue.getTimeWorked()) {
          if (user.equals(dur.getUser()) && dur.getWorked() != null) {
            worked+=dur.getWorked().getHours();
          }
        }
      }
      listItem.add(new Label("String_Node_Str",new Duration(estimate).toHoursWithFractionString()));
      listItem.add(new Label("String_Node_Str",new Duration(worked).toHoursWithFractionString()));
      listItem.add(new Label("String_Node_Str",new Duration(remaining).toHoursWithFractionString()));
    }
  }
);
}