From abaf161bf50d37029dd923ffa9989697bd9d10cb Mon Sep 17 00:00:00 2001 From: chenson42 Date: Thu, 23 Jan 2014 19:39:10 +0000 Subject: [PATCH] 0001544: API - transactions aren't being committed in the sequence service api for applications (outside of symmetricds) that use the api --- .../symmetric/service/impl/SequenceService.java | 8 ++++++-- .../java/org/jumpmind/db/sql/JdbcSqlTransaction.java | 12 ++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/SequenceService.java b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/SequenceService.java index e70a437220..94f418321f 100644 --- a/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/SequenceService.java +++ b/symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/SequenceService.java @@ -74,7 +74,9 @@ public long nextVal(String name) { ISqlTransaction transaction = null; try { transaction = sqlTemplate.startSqlTransaction(); - return nextVal(transaction, name); + long val = nextVal(transaction, name); + transaction.commit(); + return val; } catch (Error ex) { if (transaction != null) { transaction.rollback(); @@ -160,7 +162,9 @@ public long currVal(String name) { ISqlTransaction transaction = null; try { transaction = sqlTemplate.startSqlTransaction(); - return currVal(transaction, name); + long val = currVal(transaction, name); + transaction.commit(); + return val; } catch (Error ex) { if (transaction != null) { transaction.rollback(); diff --git a/symmetric-jdbc/src/main/java/org/jumpmind/db/sql/JdbcSqlTransaction.java b/symmetric-jdbc/src/main/java/org/jumpmind/db/sql/JdbcSqlTransaction.java index 517c74e5be..76f9d8839e 100644 --- a/symmetric-jdbc/src/main/java/org/jumpmind/db/sql/JdbcSqlTransaction.java +++ b/symmetric-jdbc/src/main/java/org/jumpmind/db/sql/JdbcSqlTransaction.java @@ -163,11 +163,19 @@ public int flush() { } public int queryForInt(String sql, Object... args) { - return queryForObject(sql, Integer.class, args); + Integer val = queryForObject(sql, Integer.class, args); + if (val == null) { + val = Integer.MIN_VALUE; + } + return val; } public long queryForLong(String sql, Object... args) { - return queryForObject(sql, Long.class, args); + Long val = queryForObject(sql, Long.class, args); + if (val == null) { + val = Long.MIN_VALUE; + } + return val; } public T queryForObject(final String sql, final Class clazz, final Object... args) {