LocalReadOnlyProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier,
final DataTreeSnapshot snapshot) {
- super(parent, identifier);
+ super(parent, identifier, false);
this.snapshot = Preconditions.checkNotNull(snapshot);
}
+ LocalReadOnlyProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier) {
+ super(parent, identifier, true);
+ // It is an error to touch snapshot once we are DONE
+ this.snapshot = null;
+ }
+
@Override
boolean isSnapshotOnly() {
return true;
@Override
DataTreeSnapshot readOnlyView() {
- return snapshot;
+ return Preconditions.checkNotNull(snapshot, "Transaction %s is DONE", getIdentifier());
}
@Override
throw new UnsupportedOperationException("Read-only snapshot");
}
- @Override
- void doSeal() {
- // No-op
- }
-
@Override
void flushState(final AbstractProxyTransaction successor) {
// No-op