### Question:
DefaultExecutionSlotAllocator implements ExecutionSlotAllocator { @Override public void cancel(ExecutionVertexID executionVertexId) { SlotExecutionVertexAssignment slotExecutionVertexAssignment = pendingSlotAssignments.get(executionVertexId); if (slotExecutionVertexAssignment != null) { slotExecutionVertexAssignment.getLogicalSlotFuture().cancel(false); } } DefaultExecutionSlotAllocator(
			SlotProvider slotProvider,
			InputsLocationsRetriever inputsLocationsRetriever,
			Time allocationTimeout); @Override Collection<SlotExecutionVertexAssignment> allocateSlotsFor(
			Collection<ExecutionVertexSchedulingRequirements> executionVertexSchedulingRequirements); @Override void cancel(ExecutionVertexID executionVertexId); @Override CompletableFuture<Void> stop();  }### Answer:
@Test public void testCancelNonExistingExecutionVertex() { final DefaultExecutionSlotAllocator executionSlotAllocator = createExecutionSlotAllocator(); ExecutionVertexID inValidExecutionVertexId = new ExecutionVertexID(new JobVertexID(), 0); executionSlotAllocator.cancel(inValidExecutionVertexId); assertThat(slotProvider.getCancelledSlotRequestIds(), is(empty())); }