Skip to content

Commit

Permalink
GH-4554 Allow removeRefBack() on already closed changesets
Browse files Browse the repository at this point in the history
  • Loading branch information
kenwenzel committed May 25, 2023
1 parent ec1bd49 commit 2cdcd7a
Showing 1 changed file with 12 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ T get() {
}
}

AdderBasedReadWriteLock readWriteLock = new AdderBasedReadWriteLock();
AdderBasedReadWriteLock refBacksReadWriteLock = new AdderBasedReadWriteLock();
Semaphore prependLock = new Semaphore(1);
final AdderBasedReadWriteLock readWriteLock = new AdderBasedReadWriteLock();
final AdderBasedReadWriteLock refBacksReadWriteLock = new AdderBasedReadWriteLock();
final Semaphore prependLock = new Semaphore(1);

/**
* Set of {@link SailDataset}s that are currently using this {@link Changeset} to derive the state of the
Expand Down Expand Up @@ -251,16 +251,17 @@ public void addRefback(SailDatasetImpl dataset) {
}

public void removeRefback(SailDatasetImpl dataset) {
assert !closed;
long writeLock = refBacksReadWriteLock.writeLock();
try {
if (refbacks != null) {
refbacks.removeIf(d -> d == dataset);
if (refbacks != null) {
// assert !closed;
long writeLock = refBacksReadWriteLock.writeLock();
try {
if (refbacks != null) {
refbacks.removeIf(d -> d == dataset);
}
} finally {
refBacksReadWriteLock.unlockWriter(writeLock);
}
} finally {
refBacksReadWriteLock.unlockWriter(writeLock);
}

}

public boolean isRefback() {
Expand Down

0 comments on commit 2cdcd7a

Please sign in to comment.