code: protected Link firstAvailableLink()
                      throws ObjectManagerException
      {
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this, cclass,
                          "firstAvailableLink");
  
          if (availableHead == null) {
              availableHead = head;
              skipToBeDeleted();
          } // if (availableHead == null). 
          Link nextLink = null; // The link to return.
          if (availableHead != null) // Nothing available.
              nextLink = (Link) availableHead.getManagedObject();
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this, cclass,
                         "firstAvailableLink",
                         "returns nextLink=" + nextLink + "(Link)");
          return nextLink;
      }
docs: Find the first available link after the start of the list. This search might return a link
  locked by a transaction toBeAdded.
  
  Caller must be synchronized on LinkedList.
  
  @return Link which is the first in the list not scheduled for deletion,
  or null of there is no such link.
  @throws ObjectManagerException