java: @Override public List<E> subList(int start, int end) {synchronized (mutex) {return new SynchronizedRandomAccessList<E>(list.subList(start, end), mutex);}}
C#: public override java.util.List<E> subList(int start, int end){lock (mutex){return new java.util.Collections.SynchronizedRandomAccessList<E>(list.subList(start, end), mutex);}}