code: public boolean removeReader(Object key, Object resourceId)
      {
          boolean result = false;
          ObjectLocks objectLocks = null;
          synchronized(locktable)
          {
              objectLocks = (ObjectLocks) locktable.get(resourceId);
              if(objectLocks != null)
              {
                  /**
                   * MBAIRD, last one out, close the door and turn off the lights.
                   * if no locks (readers or writers) exist for this object, let's remove
                   * it from the locktable.
                   */
                  Map readers = objectLocks.getReaders();
                  result = readers.remove(key) != null;
                  if((objectLocks.getWriter() == null) && (readers.size() == 0))
                  {
                      locktable.remove(resourceId);
                  }
              }
          }
          return result;
      }
docs: Remove an read lock.