@Override
 public void toData(DataOutput out) throws IOException {
   readLock.lock();
   try {
     super.toData(out);
   } finally {
     readLock.unlock();
   }
 }
 @Override
 public void forEach(Consumer<? super E> action) {
   readLock.lock();
   try {
     super.forEach(action);
   } finally {
     readLock.unlock();
   }
 }
 @Override
 public void fromData(DataInput in) throws IOException, ClassNotFoundException {
   writeLock.lock();
   try {
     super.fromData(in);
   } finally {
     writeLock.unlock();
   }
 }
 @Override
 public void clear() {
   writeLock.lock();
   try {
     super.clear();
   } finally {
     writeLock.unlock();
   }
 }