Index: topia/src/java/org/codelutin/topia/persistence/jdo/AbstractJDOEntity.java diff -u topia/src/java/org/codelutin/topia/persistence/jdo/AbstractJDOEntity.java:1.1 topia/src/java/org/codelutin/topia/persistence/jdo/AbstractJDOEntity.java:1.2 --- topia/src/java/org/codelutin/topia/persistence/jdo/AbstractJDOEntity.java:1.1 Thu Jul 15 13:13:13 2004 +++ topia/src/java/org/codelutin/topia/persistence/jdo/AbstractJDOEntity.java Fri Jul 30 14:38:59 2004 @@ -23,10 +23,10 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * - * Mise a jour: $Date: 2004/07/15 13:13:13 $ - * par : $Author: bpoussin $ + * Mise a jour: $Date: 2004/07/30 14:38:59 $ + * par : $Author: pineau $ */ package org.codelutin.topia.persistence.jdo; @@ -38,6 +38,7 @@ import org.codelutin.topia.TopiaEntity; import org.codelutin.topia.TopiaUser; import org.codelutin.topia.TopiaException; + import java.util.HashSet; public abstract class AbstractJDOEntity implements JDOEntity { // AbstractJDOEntity @@ -55,7 +56,7 @@ } public void set_topiaId_(String topiaId){ if(_topiaId_ != null && !_topiaId_.equals(topiaId)){ - throw new RuntimeException("It's not allowed to change topiaId"); + throw new RuntimeException("You're not allowed to change topiaId"); } this._topiaId_ = topiaId; } @@ -95,8 +96,8 @@ public void update(TopiaEntity entity, HashSet done) throws TopiaException { this._topiaId_ = entity.get_topiaId_(); this._version_ = entity.get_version_(); - this._creationDate_ = entity.get_creationDate_(); - this._lastUpdateDate_ = entity.get_lastUpdateDate_(); + this._creationDate_ = (Date) entity.get_creationDate_().clone(); + this._lastUpdateDate_ = (Date) entity.get_lastUpdateDate_().clone(); this._lastUpdateUser_ = entity.get_lastUpdateUser_(); } Index: topia/src/java/org/codelutin/topia/persistence/jdo/JDOPersistenceHelper.java diff -u topia/src/java/org/codelutin/topia/persistence/jdo/JDOPersistenceHelper.java:1.1 topia/src/java/org/codelutin/topia/persistence/jdo/JDOPersistenceHelper.java:1.2 --- topia/src/java/org/codelutin/topia/persistence/jdo/JDOPersistenceHelper.java:1.1 Thu Jul 15 13:13:13 2004 +++ topia/src/java/org/codelutin/topia/persistence/jdo/JDOPersistenceHelper.java Fri Jul 30 14:38:59 2004 @@ -23,39 +23,40 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ * - * Mise a jour: $Date: 2004/07/15 13:13:13 $ - * par : $Author: bpoussin $ + * Mise a jour: $Date: 2004/07/30 14:38:59 $ + * par : $Author: pineau $ */ package org.codelutin.topia.persistence.jdo; -import org.codelutin.util.VersionNumberUtil; -import org.codelutin.topia.persistence.PersistenceHelper; -import org.codelutin.topia.TopiaContext; -import org.codelutin.topia.TopiaId; -import org.codelutin.topia.TopiaQuery; -import org.codelutin.topia.TopiaEntity; -import org.codelutin.topia.TopiaException; -import org.codelutin.topia.TopiaNotFoundException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; import java.util.List; +import java.util.Properties; +import java.util.logging.Level; +import java.util.logging.Logger; + import javax.jdo.JDOHelper; -import javax.jdo.Transaction; -import javax.jdo.Query; import javax.jdo.PersistenceManager; import javax.jdo.PersistenceManagerFactory; -import java.util.Properties; -import java.util.HashSet; -import java.util.Iterator; +import javax.jdo.Query; +import javax.jdo.Transaction; + +import org.codelutin.queryjdo.JDOQueryHelper; import org.codelutin.queryparser.QueryHelper; import org.codelutin.queryparser.QueryHelperException; -import org.codelutin.queryjdo.JDOQueryHelper; -import java.util.Collection; -import java.util.ArrayList; -import java.io.IOException; -import java.util.logging.Level; -import java.util.logging.Logger; +import org.codelutin.topia.TopiaContext; +import org.codelutin.topia.TopiaEntity; +import org.codelutin.topia.TopiaException; +import org.codelutin.topia.TopiaId; +import org.codelutin.topia.TopiaQuery; +import org.codelutin.topia.persistence.PersistenceHelper; +import org.codelutin.util.VersionNumberUtil; public class JDOPersistenceHelper implements PersistenceHelper { // JDOPersistenceHelper @@ -121,12 +122,11 @@ if(entity instanceof AbstractLazyEntity){ AbstractLazyEntity ale = (AbstractLazyEntity) entity; - if(!ale.isLoaded()){ + if(!ale.isLoaded()) { // if is not loaded, then no modification done return jdoEntity; - }else{ - entity = ale.getEntity(); } + entity = ale.getEntity(); } @@ -170,8 +170,8 @@ } public TopiaEntity update(TopiaEntity entity) throws TopiaException{ - if ("0".equals(entity.get_version_())) { - throw new TopiaException("Can't persist " + entity + " has it seems to exist, please use update instead !"); + if (isNewObject(entity)) { + throw new TopiaException("Can't update " + entity + " has it does not seem to exist, please use makePersistent instead !"); } Transaction transaction = pm.currentTransaction(); transaction.begin();