import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.SortedSet;
-import java.util.TreeSet;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import net.pterodactylus.sone.data.Image;
import net.pterodactylus.sone.data.Post;
import net.pterodactylus.sone.data.PostReply;
-import net.pterodactylus.sone.data.Reply;
import net.pterodactylus.sone.data.Sone;
import net.pterodactylus.sone.data.impl.DefaultSoneBuilder;
import net.pterodactylus.sone.database.Database;
@Override
public Sone build(Optional<SoneCreated> soneCreated) throws IllegalStateException {
Sone sone = super.build(soneCreated);
- sones.put(sone.getId(), sone);
+ lock.writeLock().lock();
+ try {
+ sones.put(sone.getId(), sone);
+ } finally {
+ lock.writeLock().unlock();
+ }
return sone;
}
};
lock.writeLock().lock();
try {
allAlbums.put(album.getId(), album);
- albumChildren.put(album.getParent().getId(), album.getId());
+ if (!album.isRoot()) {
+ albumChildren.put(album.getParent().getId(), album.getId());
+ }
} finally {
lock.writeLock().unlock();
}