You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2010/01/20 00:51:15 UTC
svn commit: r901006 - in
/labs/magma/trunk/database-jpa/src/main/java/org/apache/magma/database/openjpa:
InstallJPADatabase.aj JPADatabase.java
Author: simoneg
Date: Tue Jan 19 23:51:15 2010
New Revision: 901006
URL: http://svn.apache.org/viewvc?rev=901006&view=rev
Log:
Rollback a database when nothing was explicitly saved on it, we don't want automagic modifications
Modified:
labs/magma/trunk/database-jpa/src/main/java/org/apache/magma/database/openjpa/InstallJPADatabase.aj
labs/magma/trunk/database-jpa/src/main/java/org/apache/magma/database/openjpa/JPADatabase.java
Modified: labs/magma/trunk/database-jpa/src/main/java/org/apache/magma/database/openjpa/InstallJPADatabase.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/database-jpa/src/main/java/org/apache/magma/database/openjpa/InstallJPADatabase.aj?rev=901006&r1=901005&r2=901006&view=diff
==============================================================================
--- labs/magma/trunk/database-jpa/src/main/java/org/apache/magma/database/openjpa/InstallJPADatabase.aj (original)
+++ labs/magma/trunk/database-jpa/src/main/java/org/apache/magma/database/openjpa/InstallJPADatabase.aj Tue Jan 19 23:51:15 2010
@@ -31,7 +31,7 @@
public void Cycle.teardownJPADatabase() {
if (this.currentDb == null) return;
- if (isInError()) {
+ if (isInError() || !this.currentDb.hasBeenWritten) {
currentDb.rollback();
} else {
currentDb.commit();
Modified: labs/magma/trunk/database-jpa/src/main/java/org/apache/magma/database/openjpa/JPADatabase.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/database-jpa/src/main/java/org/apache/magma/database/openjpa/JPADatabase.java?rev=901006&r1=901005&r2=901006&view=diff
==============================================================================
--- labs/magma/trunk/database-jpa/src/main/java/org/apache/magma/database/openjpa/JPADatabase.java (original)
+++ labs/magma/trunk/database-jpa/src/main/java/org/apache/magma/database/openjpa/JPADatabase.java Tue Jan 19 23:51:15 2010
@@ -36,6 +36,7 @@
* If true, the manager as been injected by Magma and not by the container.
*/
boolean manualManager = false;
+ boolean hasBeenWritten = false;
@Resource
EntityManager manager = null;
@@ -88,18 +89,25 @@
public void delete(Object bean) {
+ hasBeenWritten = true;
manager.remove(bean);
manager.flush();
}
public void save(Object bean) {
+ hasBeenWritten = true;
manager.persist(bean);
manager.flush();
}
public void rollback() {
+ if (manualManager) {
+ manager.clear();
+ }
if (transaction != null) transaction.rollback();
- if (manualManager) manager.close();
+ if (manualManager) {
+ manager.close();
+ }
}
public void commit() {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org