提交 e710ff73 authored 作者: Andrei Tokar's avatar Andrei Tokar

another attempt to squish "IllegalArgumentException: A map named undoLog-1 already exists"

上级 f040590a
...@@ -144,7 +144,8 @@ public class TransactionStore { ...@@ -144,7 +144,8 @@ public class TransactionStore {
if (!init) { if (!init) {
for (String mapName : store.getMapNames()) { for (String mapName : store.getMapNames()) {
if (mapName.startsWith(UNDO_LOG_NAME_PEFIX)) { if (mapName.startsWith(UNDO_LOG_NAME_PEFIX)) {
if (store.hasData(mapName)) { boolean committed = mapName.charAt(UNDO_LOG_NAME_PEFIX.length()) == UNDO_LOG_COMMITTED;
if (store.hasData(mapName) || committed) {
int transactionId = Integer.parseInt(mapName.substring(UNDO_LOG_NAME_PEFIX.length() + 1)); int transactionId = Integer.parseInt(mapName.substring(UNDO_LOG_NAME_PEFIX.length() + 1));
VersionedBitSet openTxBitSet = openTransactions.get(); VersionedBitSet openTxBitSet = openTransactions.get();
if (!openTxBitSet.get(transactionId)) { if (!openTxBitSet.get(transactionId)) {
...@@ -158,7 +159,7 @@ public class TransactionStore { ...@@ -158,7 +159,7 @@ public class TransactionStore {
status = (Integer) data[0]; status = (Integer) data[0];
name = (String) data[1]; name = (String) data[1];
} }
if (mapName.charAt(UNDO_LOG_NAME_PEFIX.length()) == UNDO_LOG_COMMITTED) { if (committed) {
status = Transaction.STATUS_COMMITTED; status = Transaction.STATUS_COMMITTED;
} }
MVMap<Long, Object[]> undoLog = store.openMap(mapName, undoLogBuilder); MVMap<Long, Object[]> undoLog = store.openMap(mapName, undoLogBuilder);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论