+ return new DefaultSoneBuilder(this) {
+ @Override
+ public Sone build(Optional<SoneCreated> soneCreated) throws IllegalStateException {
+ Sone sone = super.build(soneCreated);
+ lock.writeLock().lock();
+ try {
+ sones.put(sone.getId(), sone);
+ } finally {
+ lock.writeLock().unlock();
+ }
+ return sone;
+ }
+ };