Make settings XML text for robust.
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 15 Jan 2021 09:29:01 +0000 (10:29 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 15 Jan 2021 09:29:01 +0000 (10:29 +0100)
org.argeo.jcr/src/org/argeo/jcr/JcrxApi.java

index 64f22b6034a5c59750bc787837e20abe28758d27..0223b69444a94054564603947bc4e178e438ae93 100644 (file)
@@ -54,9 +54,12 @@ public class JcrxApi {
         */
        public static void setXmlValue(Node node, String name, String value) {
                try {
-                       if (node.hasNode(name))
-                               node.getNode(name).getNode(Jcr.JCR_XMLTEXT).setProperty(Jcr.JCR_XMLCHARACTERS, value);
-                       else
+                       if (node.hasNode(name)) {
+                               Node child = node.getNode(name);
+                               if (!child.hasNode(Jcr.JCR_XMLTEXT))
+                                       child.addNode(Jcr.JCR_XMLTEXT, JcrxType.JCRX_XMLTEXT);
+                               child.getNode(Jcr.JCR_XMLTEXT).setProperty(Jcr.JCR_XMLCHARACTERS, value);
+                       } else
                                node.addNode(name, JcrxType.JCRX_XMLVALUE).addNode(Jcr.JCR_XMLTEXT, JcrxType.JCRX_XMLTEXT)
                                                .setProperty(Jcr.JCR_XMLCHARACTERS, value);
                } catch (RepositoryException e) {