diff options
author | Brian S. O'Neill <bronee@gmail.com> | 2007-09-03 03:13:59 +0000 |
---|---|---|
committer | Brian S. O'Neill <bronee@gmail.com> | 2007-09-03 03:13:59 +0000 |
commit | 077804624eb7dc69899d1c7f045931f794501925 (patch) | |
tree | b0201f65c47beb159283a745005d6dc622ea4e61 /src/main/java/com/amazon/carbonado/gen | |
parent | 3385da4f6c830f1a7aa3ebe7c15af19ff65c0dda (diff) |
Fixed transaction leak caused when calling update, if an update trigger exists, and no properties were dirty.
Diffstat (limited to 'src/main/java/com/amazon/carbonado/gen')
-rw-r--r-- | src/main/java/com/amazon/carbonado/gen/StorableGenerator.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/com/amazon/carbonado/gen/StorableGenerator.java b/src/main/java/com/amazon/carbonado/gen/StorableGenerator.java index 4bc5010..ea61306 100644 --- a/src/main/java/com/amazon/carbonado/gen/StorableGenerator.java +++ b/src/main/java/com/amazon/carbonado/gen/StorableGenerator.java @@ -1320,6 +1320,16 @@ public final class StorableGenerator<S extends Storable> { // Even though there was no update, still need tryLoad side-effect.
{
+ // if (txn != null) {
+ // txn.exit();
+ // }
+ b.loadLocal(txnVar);
+ Label noTxn = b.createLabel();
+ b.ifNullBranch(noTxn, true);
+ b.loadLocal(txnVar);
+ b.invokeInterface(transactionType, EXIT_METHOD_NAME, null, null);
+ noTxn.setLocation();
+
Label tryStart2 = b.createLabel().setLocation();
b.loadThis();
b.invokeVirtual(DO_TRY_LOAD_METHOD_NAME, TypeDesc.BOOLEAN, null);
|