diff --git a/vcell-api/src/main/java/org/vcell/rest/health/HealthService.java b/vcell-api/src/main/java/org/vcell/rest/health/HealthService.java index 406c5619e3..f5c277f13b 100644 --- a/vcell-api/src/main/java/org/vcell/rest/health/HealthService.java +++ b/vcell-api/src/main/java/org/vcell/rest/health/HealthService.java @@ -240,7 +240,7 @@ private void runsimLoop() { BioModel templateBioModel = XmlHelper.XMLToBioModel(new XMLSource(vcmlString)); templateBioModel.clearVersion(); - templateBioModel.visitChildVersionables(new BioModel.ClearVersion()); + templateBioModel.visitChildVersionables(new BioModel.SetRandomVersionKeys()); String newBiomodelName = "test_"+System.currentTimeMillis(); templateBioModel.setName(newBiomodelName); // remove all existing simulations from stored template model, and add new one diff --git a/vcell-core/src/main/java/cbit/vcell/biomodel/BioModel.java b/vcell-core/src/main/java/cbit/vcell/biomodel/BioModel.java index 54c92d8a39..6faf70c322 100644 --- a/vcell-core/src/main/java/cbit/vcell/biomodel/BioModel.java +++ b/vcell-core/src/main/java/cbit/vcell/biomodel/BioModel.java @@ -270,6 +270,15 @@ public void accept(Versionable versionable) { } } + public final static class SetRandomVersionKeys implements Consumer { + @Override + public void accept(Versionable versionable) { + if (versionable.getVersion()!=null){ + versionable.getVersion().testFixtureRandomizeKeys(); + } + } + } + public void visitChildVersionables(Consumer operation) { operation.accept(getModel()); for (SimulationContext sc : getSimulationContexts()){ diff --git a/vcell-core/src/main/java/org/vcell/util/document/SimulationVersion.java b/vcell-core/src/main/java/org/vcell/util/document/SimulationVersion.java index 3df1ff3940..f4b411b12f 100644 --- a/vcell-core/src/main/java/org/vcell/util/document/SimulationVersion.java +++ b/vcell-core/src/main/java/org/vcell/util/document/SimulationVersion.java @@ -40,6 +40,11 @@ public SimulationVersion(KeyValue versionKeyNew, String versionNameNew, org.vcel this.parentSimulationReference = argParentSimulationReference; } + @Deprecated + public void testFixtureRandomizeKeys() { + super.testFixtureRandomizeKeys(); + parentSimulationReference = null; + } /** * Insert the method's description here. diff --git a/vcell-core/src/main/java/org/vcell/util/document/Version.java b/vcell-core/src/main/java/org/vcell/util/document/Version.java index 4853307789..bcfc1b4450 100644 --- a/vcell-core/src/main/java/org/vcell/util/document/Version.java +++ b/vcell-core/src/main/java/org/vcell/util/document/Version.java @@ -13,10 +13,7 @@ import java.io.Serializable; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Locale; +import java.util.*; import org.vcell.util.BeanUtils; import org.vcell.util.Compare; @@ -59,6 +56,12 @@ public Version(String name, User owner) { this.versionOwner = owner; } +@Deprecated +public void testFixtureRandomizeKeys() { + versionKey = new KeyValue(Long.toString(new Random().nextLong())); + versionBranchID = new BigDecimal(Long.toString(new Random().nextLong())); +} + public List compare(Object obj) { List diff = new ArrayList(); diff --git a/vcell-server/src/main/java/cbit/vcell/modeldb/ServerDocumentManager.java b/vcell-server/src/main/java/cbit/vcell/modeldb/ServerDocumentManager.java index 6f0a7358e2..0f4ecc3f0f 100644 --- a/vcell-server/src/main/java/cbit/vcell/modeldb/ServerDocumentManager.java +++ b/vcell-server/src/main/java/cbit/vcell/modeldb/ServerDocumentManager.java @@ -791,6 +791,9 @@ public String saveBioModel(QueryHashtable dbc, User user, String bioModelXML, St List versionableInfos = origBioModel.gatherChildVersionableInfos(); lg.info("Cached Biomodel("+key+"): "+versionableInfos); } +// }else{ +// User forceClearVersionUser = new User("forceClearVersionUser",new KeyValue("0")); +// forceDeepDirtyIfForeign(forceClearVersionUser, bioModel); } boolean bSomethingChanged = false;