code: public Long nextID()
      {
          lock.lock();
          try
          {
              if (lastID == Long.MAX_VALUE)
              {
                  long days = (System.currentTimeMillis() - startTime) / SECONDS_IN_DAY;
                  throw new IDSourceExhaustedException("64-bit ID source exhausted after " + days + " days.");
              }
              ++lastID;
              return lastID;
          }
          finally
          {
              lock.unlock();
          }
      }
docs: {@inheritDoc}