code: private HashtableEntry findEntry(Object key, int retrieveMode, boolean checkExpired)
                      throws IOException,
                      EOFException,
                      FileManagerException,
                      ClassNotFoundException,
                      HashtableOnDiskException {
          if (key == null) {
              return null;
          }
  
          int hashcode = key.hashCode();
          int index = header.getHtIndex(hashcode, header.currentTableId());
          long current = 0;
          HashtableEntry answer = null;
  
          if (header.rehashInProgress == 1) {
  
              if (debug)
                  print("*");
  
              //
              // First search primary table.
              //
              if (htindex[index] != 0) {
                  if (debug)
                      print("A");
                  current = htindex[index];
  
                  if (current == 0) {
                      throw new IllegalStateException("findEntry: ht pointer is null");
                  }
                  answer = findEntry(key, hashcode, retrieveMode, checkExpired, current, header.currentTableId());
                  if (answer != null) {
                      return answer;
                  }
              }
  
              //
              // Fell through, now search new table
              //
              index = header.getHtIndex(hashcode, header.alternateTableId());
              if (new_htindex[index] != 0) {
                  if (debug)
                      print("B ");
                  current = new_htindex[index];
                  if (current == 0) {
                      throw new IllegalStateException("findEntry: ht pointer is null");
                  }
                  return findEntry(key, hashcode, retrieveMode, checkExpired, current, header.alternateTableId());
              }
              //
              // Fell through again, nothing here.
              //
              return null;
          } else {
              if (htindex[index] == 0) {
                  return null;
              }
              int tableid = header.currentTableId();
              //current = header.calcOffset(index, tableid);
              current = htindex[index];
              if (current == 0) {
                  throw new IllegalStateException("findEntry: ht pointer is null");
              }
              return findEntry(key, hashcode, retrieveMode, checkExpired, current, tableid);
          }
      }
docs: ************************************************************************