code: @Override
      public synchronized ServiceTicket grantServiceTicket(final String id, final Service service, final ExpirationPolicy expirationPolicy,
                                                           final boolean credentialProvided, final boolean onlyTrackMostRecentSession) {
          val serviceTicket = new ServiceTicketImpl(id, this, service, credentialProvided, expirationPolicy);
          trackServiceSession(serviceTicket.getId(), service, onlyTrackMostRecentSession);
          return serviceTicket;
      }
docs: {@inheritDoc}
  <p>The state of the ticket is affected by this operation and the
  ticket will be considered used. The state update subsequently may
  impact the ticket expiration policy in that, depending on the policy
  configuration, the ticket may be considered expired.