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