Program: 92005
Project: 92005
Buggy source:
@Override public boolean test(Object receiver,String property,Object[] args,Object expectedValue){
  if (IS_IN_TRACE_FOLDER.equals(property)) {
    if (receiver != null && receiver instanceof IStructuredSelection) {
      Iterator<?> iter=((IStructuredSelection)receiver).iterator();
      while (iter.hasNext()) {
        Object item=iter.next();
        if (item instanceof TmfTraceElement) {
          TmfTraceElement trace=(TmfTraceElement)item;
          if (!(trace.getParent() instanceof TmfTraceFolder)) {
            return false;
          }
        }
 else {
          return false;
        }
      }
      return true;
    }
  }
  if (IS_EXPERIMENT_TRACE.equals(property)) {
    if (receiver != null && receiver instanceof TmfTraceElement) {
      TmfTraceElement trace=(TmfTraceElement)receiver;
      return trace.getParent() instanceof TmfExperimentElement;
    }
    return false;
  }
  if (HAS_SUPPLEMENTARY_FILES.equals(property)) {
    if (receiver == null) {
      return false;
    }
    if (receiver instanceof TmfTraceElement) {
      TmfTraceElement trace=(TmfTraceElement)receiver;
      return trace.hasSupplementaryResources();
    }
 else     if (receiver instanceof TmfExperimentElement) {
      TmfExperimentElement trace=(TmfExperimentElement)receiver;
      boolean hasHistory=false;
      for (      TmfTraceElement aTrace : trace.getTraces()) {
        hasHistory|=aTrace.hasSupplementaryResources();
      }
      return hasHistory;
    }
    return false;
  }
  if (TRACE_TYPE.equals(property)) {
    if (receiver != null && receiver instanceof TmfTraceElement) {
      TmfTraceElement trace=(TmfTraceElement)receiver;
      if (expectedValue instanceof String && expectedValue.equals(trace.getTraceType())) {
        return true;
      }
    }
    return false;
  }
  return false;
}

Fixed version (ground truth):
@Override public boolean test(Object receiver,String property,Object[] args,Object expectedValue){
  if (IS_IN_TRACE_FOLDER.equals(property)) {
    if (receiver != null && receiver instanceof IStructuredSelection) {
      Iterator<?> iter=((IStructuredSelection)receiver).iterator();
      while (iter.hasNext()) {
        Object item=iter.next();
        if (item instanceof TmfTraceElement) {
          TmfTraceElement trace=(TmfTraceElement)item;
          if (!(trace.getParent() instanceof TmfTraceFolder)) {
            return false;
          }
        }
 else {
          return false;
        }
      }
      return true;
    }
  }
  if (IS_EXPERIMENT_TRACE.equals(property)) {
    if (receiver != null && receiver instanceof TmfTraceElement) {
      TmfTraceElement trace=(TmfTraceElement)receiver;
      return trace.getParent() instanceof TmfExperimentElement;
    }
    return false;
  }
  if (HAS_SUPPLEMENTARY_FILES.equals(property)) {
    if (receiver == null) {
      return false;
    }
    if (receiver instanceof TmfTraceElement) {
      TmfTraceElement trace=(TmfTraceElement)receiver;
      return trace.hasSupplementaryResources();
    }
 else     if (receiver instanceof TmfExperimentElement) {
      TmfExperimentElement trace=(TmfExperimentElement)receiver;
      boolean hasHistory=false;
      for (      TmfTraceElement aTrace : trace.getTraces()) {
        hasHistory|=aTrace.hasSupplementaryResources();
      }
      hasHistory|=trace.hasSupplementaryResources();
      return hasHistory;
    }
    return false;
  }
  if (TRACE_TYPE.equals(property)) {
    if (receiver != null && receiver instanceof TmfTraceElement) {
      TmfTraceElement trace=(TmfTraceElement)receiver;
      if (expectedValue instanceof String && expectedValue.equals(trace.getTraceType())) {
        return true;
      }
    }
    return false;
  }
  return false;
}