code: @Transactional(transactionManager = "ticketTransactionManager", noRollbackFor = InvalidTicketException.class)
      @Override
      public <T extends Ticket> T getTicket(final @NonNull String ticketId, final Class<T> clazz) throws InvalidTicketException {
          val ticket = this.ticketRegistry.getTicket(ticketId, clazz);
          verifyTicketState(ticket, ticketId, clazz);
          return (T) ticket;
      }
docs: {@inheritDoc}
  <p>
  Note:
  Synchronization on ticket object in case of cache based registry doesn't serialize
  access to critical section. The reason is that cache pulls serialized data and
  builds new object, most likely for each pull. Is this synchronization needed here?