- synchronized (snapshotList) {
- Iterator<StoredSnapshot> iter = snapshotList.iterator();
- while(iter.hasNext()) {
- StoredSnapshot s = iter.next();
- LOG.trace("doDelete: sequenceNr: {}, maxSequenceNr: {}", s.getMetadata().sequenceNr(),
- snapshotSelectionCriteria.maxSequenceNr());
-
- if(s.getMetadata().sequenceNr() <= snapshotSelectionCriteria.maxSequenceNr()) {
- iter.remove();
+ return Futures.successful(null);
+ }
+
+ @Override
+ public Future<Void> doDeleteAsync(final String persistenceId, final SnapshotSelectionCriteria criteria) {
+ LOG.trace("doDelete: persistentId {}: maxSequenceNr: {}: maxTimestamp {}", persistenceId,
+ criteria.maxSequenceNr(), criteria.maxTimestamp());
+
+ List<StoredSnapshot> snapshotList = snapshots.get(persistenceId);
+ if (snapshotList != null) {
+ synchronized (snapshotList) {
+ Iterator<StoredSnapshot> iter = snapshotList.iterator();
+ while (iter.hasNext()) {
+ StoredSnapshot stored = iter.next();
+ if (matches(stored, criteria)) {
+ LOG.trace("Deleting snapshot for sequenceNr: {}, timestamp: {}: {}",
+ stored.metadata.sequenceNr(), stored.metadata.timestamp(), stored.data);
+
+ iter.remove();
+ }