From 52e45ed151261fdf9817622960327258e2e5515e Mon Sep 17 00:00:00 2001 From: tosmers Date: Tue, 20 Dec 2016 22:52:01 +0000 Subject: [PATCH] [UPDATE] - adds json annotation '@JsonIdentityInfo' to many-to-many relationships of exportable classes git-svn-id: https://svn.libreccm.org/ccm/trunk@4498 8810af33-2d31-482b-a856-94f89814c4df --- .../workflow/AssignableTaskConversion.java | 18 +++++++++++------- .../portation/modules/core/workflow/Task.java | 11 ++++++++--- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/AssignableTaskConversion.java b/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/AssignableTaskConversion.java index 79e0b13fc..63b0f1947 100644 --- a/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/AssignableTaskConversion.java +++ b/ccm-core/src/com/arsdigita/portation/conversion/core/workflow/AssignableTaskConversion.java @@ -77,14 +77,18 @@ public class AssignableTaskConversion { AssignableTask assignableTask = new AssignableTask(trunkUserTask); // set workflow and opposed associations - if (trunkUserTask.getWorkflow() != null) { - Workflow workflow = NgCollection.workflows.get( - trunkUserTask.getWorkflow().getID().longValue()); - if (workflow != null) { - assignableTask.setWorkflow(workflow); - workflow.addTask(assignableTask); + com.arsdigita.workflow.simple.Workflow userTaskWorkflow = null; + try { + userTaskWorkflow = trunkUserTask.getWorkflow(); + if (userTaskWorkflow != null) { + Workflow workflow = NgCollection.workflows.get( + userTaskWorkflow.getID().longValue()); + if (workflow != null) { + assignableTask.setWorkflow(workflow); + workflow.addTask(assignableTask); + } } - } + } catch (Exception e) {} // set taskComments Iterator commentsIt = trunkUserTask.getComments(); diff --git a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/Task.java b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/Task.java index dabbd16f6..fb747e5d3 100644 --- a/ccm-core/src/com/arsdigita/portation/modules/core/workflow/Task.java +++ b/ccm-core/src/com/arsdigita/portation/modules/core/workflow/Task.java @@ -22,7 +22,8 @@ import com.arsdigita.portation.conversion.NgCollection; import com.arsdigita.portation.modules.core.l10n.LocalizedString; import com.arsdigita.portation.modules.core.workflow.util.StateMapper; import com.fasterxml.jackson.annotation.JsonBackReference; -import com.fasterxml.jackson.annotation.JsonManagedReference; +import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.ObjectIdGenerators; import java.util.ArrayList; import java.util.List; @@ -47,9 +48,13 @@ public class Task { @JsonBackReference private Workflow workflow; - @JsonManagedReference + @JsonIdentityInfo( + generator = ObjectIdGenerators.PropertyGenerator.class, + property = "taskId") private List dependentTasks; - @JsonBackReference + @JsonIdentityInfo( + generator = ObjectIdGenerators.PropertyGenerator.class, + property = "taskId") private List dependsOn; private List comments;