docs: private Tuple2<List<KeyedStateHandle>, List<KeyedStateHandle>> reAssignSubKeyedStates(
  			OperatorState operatorState,
  			List<KeyGroupRange> keyGroupPartitions,
  			int subTaskIndex,
  			int newParallelism,
  			int oldParallelism) {
  
  		List<KeyedStateHandle> subManagedKeyedState;
  		List<KeyedStateHandle> subRawKeyedState;
  
  		if (newParallelism == oldParallelism) {
  			if (operatorState.getState(subTaskIndex) != null) {
  				subManagedKeyedState = operatorState.getState(subTaskIndex).getManagedKeyedState().asList();
  				subRawKeyedState = operatorState.getState(subTaskIndex).getRawKeyedState().asList();
  			} else {
  				subManagedKeyedState = Collections.emptyList();
  				subRawKeyedState = Collections.emptyList();
  			}
  		} else {
  			subManagedKeyedState = getManagedKeyedStateHandles(operatorState, keyGroupPartitions.get(subTaskIndex));
  			subRawKeyedState = getRawKeyedStateHandles(operatorState, keyGroupPartitions.get(subTaskIndex));
  		}
  
  		if (subManagedKeyedState.isEmpty() && subRawKeyedState.isEmpty()) {
  			return new Tuple2<>(Collections.emptyList(), Collections.emptyList());
  		} else {
  			return new Tuple2<>(subManagedKeyedState, subRawKeyedState);
  		}
  	}