code: protected ISynchronizationPoint<? extends Exception> serializeCollectionValue(
  		CollectionContext context, String path, List<SerializationRule> rules
  	) {
  		ISynchronizationPoint<? extends Exception> start = startCollectionValue(context, path, rules);
  		SynchronizationPoint<Exception> result = new SynchronizationPoint<>();
  		if (start.isUnblocked()) {
  			serializeCollectionElement(context, context.getIterator(), 0, path, rules, result);
  			return result;
  		}
  		start.listenAsyncSP(new SerializationTask(() -> {
  			serializeCollectionElement(context, context.getIterator(), 0, path, rules, result);
  		}), result);
  		return result;
  	}
docs: *** Collection ***