Program: 168507
Project: 168507
Buggy source:
public CommonBTNode getExtentsOverflowNode(long nodeNumber){
  ExtentsInitProcedure init=new ExtentsInitProcedure();
  long currentNodeNumber;
  if (nodeNumber < 0)   currentNodeNumber=init.bthr.getRootNodeNumber();
 else   currentNodeNumber=nodeNumber;
  final int nodeSize=init.bthr.getNodeSize();
  byte[] currentNodeData=new byte[nodeSize];
  try {
    init.extentsFile.seek(currentNodeNumber * nodeSize);
    init.extentsFile.readFully(currentNodeData);
  }
 catch (  RuntimeException e) {
    System.err.println("String_Node_Str");
    System.err.println("String_Node_Str" + nodeNumber);
    System.err.println("String_Node_Str" + currentNodeNumber);
    System.err.println("String_Node_Str" + nodeSize);
    System.err.println("String_Node_Str" + init.extentsFile.length());
    System.err.println("String_Node_Str" + (currentNodeNumber * nodeSize));
    throw e;
  }
  CommonBTNodeDescriptor nodeDescriptor=createCommonBTNodeDescriptor(currentNodeData,0);
  if (nodeDescriptor.getNodeType() == NodeType.HEADER)   return createCommonBTHeaderNode(currentNodeData,0,nodeSize);
  if (nodeDescriptor.getNodeType() == NodeType.INDEX)   return createCommonHFSExtentIndexNode(currentNodeData,0,nodeSize);
 else   if (nodeDescriptor.getNodeType() == NodeType.LEAF)   return createCommonHFSExtentLeafNode(currentNodeData,0,nodeSize);
 else   return null;
}

Fixed version (ground truth):
/** 
 * Returns extents overflow node number <code>nodeNumber</code> Node number 0 is always the B*-tree header node. The node numbers of the rest of the node are determined by the contents of the header node.<br> A value of -1 for nodeNumber is special and means that the root index node should be retrieved. If the root index node does not exist, null is returned.
 * @param nodeNumber
 * @return
 */
public CommonBTNode getExtentsOverflowNode(long nodeNumber){
  ExtentsInitProcedure init=new ExtentsInitProcedure();
  long currentNodeNumber;
  if (nodeNumber < 0) {
    currentNodeNumber=init.bthr.getRootNodeNumber();
    if (currentNodeNumber == 0)     return null;
  }
 else   currentNodeNumber=nodeNumber;
  final int nodeSize=init.bthr.getNodeSize();
  byte[] currentNodeData=new byte[nodeSize];
  try {
    init.extentsFile.seek(currentNodeNumber * nodeSize);
    init.extentsFile.readFully(currentNodeData);
  }
 catch (  RuntimeException e) {
    System.err.println("String_Node_Str");
    System.err.println("String_Node_Str" + nodeNumber);
    System.err.println("String_Node_Str" + currentNodeNumber);
    System.err.println("String_Node_Str" + nodeSize);
    System.err.println("String_Node_Str" + init.extentsFile.length());
    System.err.println("String_Node_Str" + (currentNodeNumber * nodeSize));
    throw e;
  }
  CommonBTNodeDescriptor nodeDescriptor=createCommonBTNodeDescriptor(currentNodeData,0);
  if (nodeDescriptor.getNodeType() == NodeType.HEADER)   return createCommonBTHeaderNode(currentNodeData,0,nodeSize);
  if (nodeDescriptor.getNodeType() == NodeType.INDEX)   return createCommonHFSExtentIndexNode(currentNodeData,0,nodeSize);
 else   if (nodeDescriptor.getNodeType() == NodeType.LEAF)   return createCommonHFSExtentLeafNode(currentNodeData,0,nodeSize);
 else   return null;
}