Program: 59173
Project: 59173
Buggy source:
protected void processHits(final GL gl,int iHitCount,int iArPickingBuffer[],final Point pickPoint){
  IPathwayVertexRep refPickedVertexRep;
  int iPtr=0;
  int i=0;
  int iPickedObjectId=0;
  iPtr++;
  iPtr++;
  iPtr++;
  iPickedObjectId=iArPickingBuffer[iPtr];
  if (iPickedObjectId == 0) {
    iMouseOverPickedPathwayId=-1;
    selectedVertex=null;
    infoAreaRenderer.resetAnimation();
    return;
  }
  if (!arSlerpActions.isEmpty())   return;
  if (iPickedObjectId < MAX_LOADED_PATHWAYS) {
    int iPathwayId=refHashPoolLinePickId2PathwayId.get(iPickedObjectId);
    System.out.println("String_Node_Str" + iPathwayId);
    if (bIsMouseOverPickingEvent) {
      if (iMouseOverPickedPathwayId != iPathwayId) {
        iMouseOverPickedPathwayId=iPathwayId;
        playPathwayPoolTickSound();
      }
      return;
    }
    loadPathwayToUnderInteractionPosition(iPathwayId);
    return;
  }
 else   if (iPickedObjectId == MAX_LOADED_PATHWAYS) {
    return;
  }
  refPickedVertexRep=refGLPathwayManager.getVertexRepByPickID(iPickedObjectId);
  if (refPickedVertexRep == null)   return;
  loadNodeInformationInBrowser(refPickedVertexRep.getVertex().getVertexLink());
  iMouseOverPickedPathwayId=-1;
  System.out.println("String_Node_Str" + refPickedVertexRep.getName());
  infoAreaRenderer.convertWindowCoordinatesToWorldCoordinates(gl,pickPoint.x,pickPoint.y);
  if (bIsMouseOverPickingEvent) {
    if (selectedVertex != null && !selectedVertex.equals(refPickedVertexRep.getVertex()))     infoAreaRenderer.resetAnimation();
    selectedVertex=refPickedVertexRep.getVertex();
    bSelectionChanged=true;
    return;
  }
  if (refPickedVertexRep.getVertex().getVertexType().equals(PathwayVertexType.map)) {
    String strTmp="String_Node_Str";
    strTmp=refPickedVertexRep.getVertex().getElementTitle();
    int iPathwayId=-1;
    try {
      iPathwayId=Integer.parseInt(strTmp.substring(strTmp.length() - 4));
    }
 catch (    NumberFormatException e) {
      return;
    }
    loadPathwayToUnderInteractionPosition(iPathwayId);
    return;
  }
 else   if (refPickedVertexRep.getVertex().getVertexType().equals(PathwayVertexType.enzyme)) {
    selectedVertex=refPickedVertexRep.getVertex();
    bSelectionChanged=true;
    loadDependentPathwayContainingVertex(gl,refPickedVertexRep.getVertex());
  }
}

Fixed version (ground truth):
protected void processHits(final GL gl,int iHitCount,int iArPickingBuffer[],final Point pickPoint){
  IPathwayVertexRep refPickedVertexRep;
  int iPtr=0;
  int i=0;
  int iPickedObjectId=0;
  iPtr++;
  iPtr++;
  iPtr++;
  iPickedObjectId=iArPickingBuffer[iPtr];
  if (iPickedObjectId == 0) {
    iMouseOverPickedPathwayId=-1;
    selectedVertex=null;
    infoAreaRenderer.resetAnimation();
    return;
  }
  if (!arSlerpActions.isEmpty())   return;
  if (iPickedObjectId < MAX_LOADED_PATHWAYS) {
    int iPathwayId=refHashPoolLinePickId2PathwayId.get(iPickedObjectId);
    System.out.println("String_Node_Str" + iPathwayId);
    if (bIsMouseOverPickingEvent) {
      if (iMouseOverPickedPathwayId != iPathwayId) {
        iMouseOverPickedPathwayId=iPathwayId;
        playPathwayPoolTickSound();
      }
      return;
    }
    loadPathwayToUnderInteractionPosition(gl,iPathwayId);
    return;
  }
 else   if (iPickedObjectId == MAX_LOADED_PATHWAYS) {
    return;
  }
  refPickedVertexRep=refGLPathwayManager.getVertexRepByPickID(iPickedObjectId);
  if (refPickedVertexRep == null)   return;
  loadNodeInformationInBrowser(refPickedVertexRep.getVertex().getVertexLink());
  iMouseOverPickedPathwayId=-1;
  System.out.println("String_Node_Str" + refPickedVertexRep.getName());
  infoAreaRenderer.convertWindowCoordinatesToWorldCoordinates(gl,pickPoint.x,pickPoint.y);
  if (bIsMouseOverPickingEvent) {
    if (selectedVertex != null && !selectedVertex.equals(refPickedVertexRep.getVertex()))     infoAreaRenderer.resetAnimation();
    selectedVertex=refPickedVertexRep.getVertex();
    bSelectionChanged=true;
    return;
  }
  if (refPickedVertexRep.getVertex().getVertexType().equals(PathwayVertexType.map)) {
    String strTmp="String_Node_Str";
    strTmp=refPickedVertexRep.getVertex().getElementTitle();
    int iPathwayId=-1;
    try {
      iPathwayId=Integer.parseInt(strTmp.substring(strTmp.length() - 4));
    }
 catch (    NumberFormatException e) {
      return;
    }
    loadPathwayToUnderInteractionPosition(gl,iPathwayId);
    return;
  }
 else   if (refPickedVertexRep.getVertex().getVertexType().equals(PathwayVertexType.enzyme)) {
    selectedVertex=refPickedVertexRep.getVertex();
    bSelectionChanged=true;
    loadDependentPathwayContainingVertex(gl,refPickedVertexRep.getVertex());
  }
}