Program: 95471
Project: 95471
Buggy source:
/** 
 * Shows a message in the problems view.
 * @param message The message in the problems view.
 * @param messageType IMarker.SEVERITY_ERROR, IMarker.SEVERITY_INFO or IMarker.SEVERITY_WARNING
 * @param location The location of the problem, task, ....
 * @param object The object reference.
 * @param type The type of this problem
 */
private void createMarker(String message,int messageType,String location,Object object,ProblemType type){
  boolean existProblem=false;
  for (  IMarker marker : m_markerList) {
    try {
      if (marker.getAttribute(IMarker.LOCATION).equals(location) && marker.getAttribute(IMarker.SEVERITY).equals(messageType) && marker.getAttribute(IMarker.MESSAGE).equals(message)&& ((object != null && new Integer(object.hashCode()).equals(marker.getAttribute(Constants.JB_OBJECT_HASHCODE))) || (object == null && marker.getAttribute(Constants.JB_OBJECT_HASHCODE) == null))) {
        existProblem=true;
        m_markerToShowList.add(marker);
      }
    }
 catch (    CoreException e) {
    }
  }
  if (existProblem) {
    return;
  }
  try {
    IMarker marker=MARKER_ROOT.createMarker(Constants.JB_PROBLEM_MARKER);
    marker.setAttribute(IMarker.LOCATION,location);
    marker.setAttribute(IMarker.SEVERITY,messageType);
    marker.setAttribute(IMarker.MESSAGE,message);
    if (object != null) {
      marker.setAttribute(Constants.JB_OBJECT_HASHCODE,object.hashCode());
    }
 else {
      marker.setAttribute(Constants.JB_OBJECT_HASHCODE,null);
    }
    marker.setAttribute(Constants.JB_REASON,type.ordinal());
    if (object instanceof INodePO) {
      INodePO node=(INodePO)object;
      marker.setAttribute(Constants.JB_OBJECT_NAME,node.getName());
      marker.setAttribute(Constants.JB_NODE_GUID,node.getGuid());
    }
 else {
      if (object instanceof String) {
        marker.setAttribute(Constants.JB_OBJECT_NAME,object);
      }
 else {
        marker.setAttribute(Constants.JB_OBJECT_NAME,StringConstants.EMPTY);
      }
      marker.setAttribute(Constants.JB_NODE_GUID,StringConstants.EMPTY);
    }
    m_markerList.add(marker);
    m_markerToShowList.add(marker);
  }
 catch (  CoreException e) {
    log.error(e.getLocalizedMessage(),e);
  }
}

Fixed version (ground truth):
/** 
 * Shows a message in the problems view.
 * @param message The message in the problems view.
 * @param messageType IMarker.SEVERITY_ERROR, IMarker.SEVERITY_INFO or IMarker.SEVERITY_WARNING
 * @param location The location of the problem, task, ....
 * @param object The object reference.
 * @param type The type of this problem
 */
private void createMarker(String message,int messageType,String location,Object object,ProblemType type){
  boolean existProblem=false;
  for (  IMarker marker : m_markerList) {
    try {
      if (marker.getAttribute(IMarker.LOCATION).equals(location) && marker.getAttribute(IMarker.SEVERITY).equals(messageType) && marker.getAttribute(IMarker.MESSAGE).equals(message)&& ((object != null && new Integer(object.hashCode()).equals(marker.getAttribute(Constants.JB_OBJECT_HASHCODE))) || (object == null && marker.getAttribute(Constants.JB_OBJECT_HASHCODE) == null))) {
        existProblem=true;
        m_markerToShowList.add(marker);
      }
    }
 catch (    CoreException e) {
    }
  }
  if (existProblem) {
    return;
  }
  try {
    IMarker marker=MARKER_ROOT.createMarker(Constants.JB_PROBLEM_MARKER);
    marker.setAttribute(IMarker.LOCATION,location);
    marker.setAttribute(IMarker.SEVERITY,messageType);
    marker.setAttribute(IMarker.MESSAGE,message);
    if (object != null) {
      marker.setAttribute(Constants.JB_OBJECT_HASHCODE,object.hashCode());
    }
 else {
      marker.setAttribute(Constants.JB_OBJECT_HASHCODE,null);
    }
    marker.setAttribute(Constants.JB_REASON,type.ordinal());
    if (object instanceof IComponentNamePO) {
      marker.setAttribute(Constants.JB_NODE_GUID,((IComponentNamePO)object).getGuid());
    }
 else     if (object instanceof INodePO) {
      INodePO node=(INodePO)object;
      marker.setAttribute(Constants.JB_OBJECT_NAME,node.getName());
      marker.setAttribute(Constants.JB_NODE_GUID,node.getGuid());
    }
 else {
      if (object instanceof String) {
        marker.setAttribute(Constants.JB_OBJECT_NAME,object);
      }
 else {
        marker.setAttribute(Constants.JB_OBJECT_NAME,StringConstants.EMPTY);
      }
      marker.setAttribute(Constants.JB_NODE_GUID,StringConstants.EMPTY);
    }
    m_markerList.add(marker);
    m_markerToShowList.add(marker);
  }
 catch (  CoreException e) {
    log.error(e.getLocalizedMessage(),e);
  }
}