X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.document.server%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fserver%2FDocumentServerUtils.java;h=5e1f5cc30e798aff45343b8f8c5f4483b6d8a9cc;hp=4821bbd1ca0e4c48a1cbe71210d1e53acb2c20be;hb=4f87cc11bc1e4a56860f278798e41834ea1fbb3f;hpb=b4d40b271019ac79aa3003551ec89f1e15aed950 diff --git a/bundles/org.simantics.document.server/src/org/simantics/document/server/DocumentServerUtils.java b/bundles/org.simantics.document.server/src/org/simantics/document/server/DocumentServerUtils.java index 4821bbd1c..5e1f5cc30 100644 --- a/bundles/org.simantics.document.server/src/org/simantics/document/server/DocumentServerUtils.java +++ b/bundles/org.simantics.document.server/src/org/simantics/document/server/DocumentServerUtils.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; @@ -324,8 +325,24 @@ public class DocumentServerUtils { for(Variable attrib : statics) { String name = attrib.getName(graph); try { - Object value = DocumentServerUtils.getValue(graph, attrib); - object.addJSONField(name, value); + if (name.equals(NodeRequest.PROPERTY_VALUE_EXCEPTIONS)) { + @SuppressWarnings("unchecked") + Map exceptions = (Map)DocumentServerUtils.getValue(graph, attrib); + + List errorList = object.getJSONField(NodeRequest.ERRORS); + if(errorList == null) + errorList = new ArrayList(); + + for (Map.Entry entry : exceptions.entrySet()) { + String errorMessage = NodeRequestUtils.formatErrorMessage(entry.getKey(), entry.getValue()); + errorList.add(errorMessage); + } + object.addJSONField(NodeRequest.ERRORS, errorList); + + } else { + Object value = DocumentServerUtils.getValue(graph, attrib); + object.addJSONField(name, value); + } } catch (Throwable t) { List errorList = object.getJSONField(NodeRequest.ERRORS); if(errorList == null)