code: boolean removeEmptyNode(int lookup) {
  
          // A VoltDB extension to diagnose ArrayOutOfBounds.
          voltDBhistory[voltDBhistoryDepth++ % voltDBhistoryCapacity] = 1000000 + lookup;
          // End of VoltDB extension
          boolean found      = false;
          int     lastLookup = -1;
  
          for (int i = reclaimedNodePointer; i >= 0;
                  lastLookup = i, i = linkTable[i]) {
              if (i == lookup) {
                  if (lastLookup == -1) {
                      reclaimedNodePointer = linkTable[lookup];
                  } else {
                      linkTable[lastLookup] = linkTable[lookup];
                  }
  
                  found = true;
  
                  break;
              }
          }
  
          if (!found) {
              return false;
          }
  
          for (int i = 0; i < newNodePointer; i++) {
              if (linkTable[i] > lookup) {
                  linkTable[i]--;
              }
          }
  
          System.arraycopy(linkTable, lookup + 1, linkTable, lookup,
                           newNodePointer - lookup - 1);
  
          linkTable[newNodePointer - 1] = 0;
  
          newNodePointer--;
  
          for (int i = 0; i < hashTable.length; i++) {
              if (hashTable[i] > lookup) {
                  hashTable[i]--;
              }
          }
  
          return true;
      }
docs: Remove a node that has already been unlinked. This is not required
  for index operations. It is used only when the row needs to be removed
  from the data structures that store the actual indexed data and the
  nodes need to be contiguous.
  
  @param lookup the node to remove
  @return true if node found in unlinked state