Skip to content

Commit 6fcc5e2

Browse files
authored
Merge pull request #820 from grzesiek2010/init_edit
Fixed initialization of the form definition for edits that are already modifications of finalized forms
2 parents 65b52b3 + 0dfa809 commit 6fcc5e2

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/main/java/org/javarosa/core/model/FormDef.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,8 +1116,11 @@ public void initialize(FormInitializationMode formInitializationMode) {
11161116
if (metaSection != null) {
11171117
TreeElement instanceId = metaSection.getFirstChild("instanceID");
11181118
if (instanceId != null) {
1119-
TreeElement deprecatedId = new TreeElement("deprecatedID");
1120-
metaSection.addChild(deprecatedId);
1119+
TreeElement deprecatedId = metaSection.getFirstChild("deprecatedID");
1120+
if (deprecatedId == null) {
1121+
deprecatedId = new TreeElement("deprecatedID");
1122+
metaSection.addChild(deprecatedId);
1123+
}
11211124
deprecatedId.setAnswer(instanceId.getValue());
11221125
instanceId.setAnswer(new StringData("uuid:" + PropertyUtils.genUUID()));
11231126
}

src/test/java/org/javarosa/core/model/test/FormDefTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import org.javarosa.core.model.condition.IFunctionHandler;
5252
import org.javarosa.core.model.data.IAnswerData;
5353
import org.javarosa.core.model.data.StringData;
54+
import org.javarosa.core.model.instance.TreeElement;
5455
import org.javarosa.core.model.instance.TreeReference;
5556
import org.javarosa.test.Scenario;
5657
import org.javarosa.test.XFormsElement;
@@ -530,6 +531,9 @@ public Object eval(Object[] args, EvaluationContext ec) {
530531
formDef = Scenario.createFormDef("Simplest", formXml);
531532

532533
formDef.getMainInstance().getRoot().getFirstChild("meta").getFirstChild("instanceID").setAnswer(originalInstanceID);
534+
TreeElement deprecatedID = new TreeElement("deprecatedID");
535+
deprecatedID.setAnswer(originalDeprecatedID);
536+
formDef.getMainInstance().getRoot().getFirstChild("meta").addChild(deprecatedID);
533537
formDef.initialize(FormInitializationMode.FINALIZED_FORM_EDIT);
534538

535539
IAnswerData newInstanceID = formDef.getMainInstance().getRoot().getFirstChild("meta").getFirstChild("instanceID").getValue();

0 commit comments

Comments
 (0)