Dispose of newly created transactions if transfer() fails.
This commit is contained in:
parent
5b5850e097
commit
0981e0dcdd
|
@ -527,10 +527,20 @@ class FDBTransaction extends DefaultDisposableImpl implements Disposable, Transa
|
|||
|
||||
// Must hold pointerReadLock when calling
|
||||
private FDBTransaction transfer() {
|
||||
FDBTransaction tr = new FDBTransaction(getPtr(), database, executor);
|
||||
tr.options().setUsedDuringCommitProtectionDisable();
|
||||
transactionOwner = false;
|
||||
return tr;
|
||||
FDBTransaction tr = null;
|
||||
try {
|
||||
tr = new FDBTransaction(getPtr(), database, executor);
|
||||
tr.options().setUsedDuringCommitProtectionDisable();
|
||||
transactionOwner = false;
|
||||
return tr;
|
||||
}
|
||||
catch(RuntimeException err) {
|
||||
if(tr != null) {
|
||||
tr.dispose();
|
||||
}
|
||||
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -579,10 +579,20 @@ class FDBTransaction extends DefaultDisposableImpl implements Disposable, Transa
|
|||
|
||||
// Must hold pointerReadLock when calling
|
||||
private FDBTransaction transfer() {
|
||||
FDBTransaction tr = new FDBTransaction(getPtr(), database, executor);
|
||||
tr.options().setUsedDuringCommitProtectionDisable();
|
||||
transactionOwner = false;
|
||||
return tr;
|
||||
FDBTransaction tr = null;
|
||||
try {
|
||||
tr = new FDBTransaction(getPtr(), database, executor);
|
||||
tr.options().setUsedDuringCommitProtectionDisable();
|
||||
transactionOwner = false;
|
||||
return tr;
|
||||
}
|
||||
catch(RuntimeException err) {
|
||||
if(tr != null) {
|
||||
tr.dispose();
|
||||
}
|
||||
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue