@Override
    public UUID generateId() {
        long counterValue = counter.incrementAndGet();
        if (counterValue == MAX_COUNTER_VALUE) {
            throw new CucumberException(
                "Out of " + IncrementingUuidGenerator.class.getSimpleName() +
                        " capacity. Please generate using a new instance or use another " +
                        UuidGenerator.class.getSimpleName() + "implementation.");
        }
        long leastSigBits = counterValue | 0x8000000000000000L; // set variant
        return new UUID(msb, leastSigBits);
    }
@Test
    void different_classloaderId_leads_to_different_uuid_when_ignoring_epoch_time() {
        // Given the two generator have the different classloaderId
        UuidGenerator generator1 = getUuidGeneratorFromOtherClassloader(1);
        UuidGenerator generator2 = getUuidGeneratorFromOtherClassloader(2);

        // When the UUID are generated
        UUID uuid1 = generator1.generateId();
        UUID uuid2 = generator2.generateId();

        // Then the UUID are the same
        assertNotEquals(removeEpochTime(uuid1), removeEpochTime(uuid2));
    }