Author: michiel
Date: 2010-02-18 14:33:00 +0100 (Thu, 18 Feb 2010)
New Revision: 41132
Modified:
mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/storage/implementation/database/DatabaseStorageManager.java
Log:
Fix for MMB-1915 was not quite correct
Modified:
mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/storage/implementation/database/DatabaseStorageManager.java
===================================================================
---
mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/storage/implementation/database/DatabaseStorageManager.java
2010-02-18 13:26:56 UTC (rev 41131)
+++
mmbase/branches/MMBase-1_9/core/src/main/java/org/mmbase/storage/implementation/database/DatabaseStorageManager.java
2010-02-18 13:33:00 UTC (rev 41132)
@@ -195,6 +195,7 @@
return verifyTables;
}
+
/**
* Obtains an active connection, opening a new one if needed.
* This method sets and then returns the {...@link #activeConnection}
member.
@@ -211,6 +212,7 @@
}
}
activeConnection = factory.getDataSource().getConnection();
+
// set autocommit to true
if (activeConnection != null) {
activeConnection.setAutoCommit(true);
@@ -235,6 +237,8 @@
log.error("Failure when closing connection: " +
se.getMessage());
}
activeConnection = null;
+ } else {
+ log.debug("No connection to release " + activeConnection + " " +
inTransaction);
}
@@ -248,12 +252,15 @@
if (factory.supportsTransactions()) {
try {
getActiveConnection();
- if (activeConnection == null) return;
+ if (activeConnection == null) {
+ log.debug("No active connection got");
+ return;
+ }
activeConnection.setTransactionIsolation(transactionIsolation);
activeConnection.setAutoCommit(false);
} catch (SQLException se) {
+ inTransaction = false;
releaseActiveConnection();
- inTransaction = false;
throw new StorageException(se);
}
}
@@ -282,6 +289,9 @@
releaseActiveConnection();
factory.getChangeManager().commit(changes);
}
+ log.debug("Commited");
+ } else {
+ log.debug("Transactions not supported");
}
}
}
@@ -291,16 +301,19 @@
if (!inTransaction) {
throw new StorageException("No transaction started.");
} else {
- inTransaction = false;
if (factory.supportsTransactions()) {
try {
activeConnection.rollback();
} catch (SQLException se) {
throw new StorageException(se);
} finally {
+ inTransaction = false;
releaseActiveConnection();
changes.clear();
}
+ log.debug("Rolled back");
+ } else {
+ log.debug("Transactions not supported");
}
return factory.supportsTransactions();
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs