extends ReactorStmtCtx<A, D, E> {
private final StatementContextBase<?, ?, ?> parent;
private final ReactorStmtCtx<A, D, E> source;
+ // We need to drop source's reference count when we are being swept.
+ private final boolean haveSourceRef;
ReplicaStatementContext(final StatementContextBase<?, ?, ?> parent, final ReactorStmtCtx<A, D, E> source) {
super(source, null);
this.source = requireNonNull(source);
if (source.isSupportedToBuildEffective()) {
source.incRef();
+ haveSourceRef = true;
+ } else {
+ haveSourceRef = false;
}
}
@Override
int sweepSubstatements() {
- if (haveSourceReference()) {
+ if (haveSourceRef) {
source.decRef();
}
return 0;