X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr%2Fsrc%2Forg%2Fargeo%2Fjcr%2FJcr.java;h=6f0e39d8298759db33affea0dc57d9a69b7bb47f;hb=refs%2Ftags%2Fargeo-commons-2.1.89;hp=493e4afe27da3e327e84df69210061c3277882e2;hpb=6a44d45d5e60b6187ddca5fa280f468d5763c2ad;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.jcr/src/org/argeo/jcr/Jcr.java b/org.argeo.jcr/src/org/argeo/jcr/Jcr.java index 493e4afe2..6f0e39d82 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/Jcr.java +++ b/org.argeo.jcr/src/org/argeo/jcr/Jcr.java @@ -297,8 +297,13 @@ public class Jcr { */ public static void set(Node node, String property, Object value) { try { - if (!node.hasProperty(property)) - throw new IllegalArgumentException("No property " + property + " in " + node); + if (!node.hasProperty(property)) { + if (value != null) + node.setProperty(property, value.toString()); + return; + // throw new IllegalArgumentException("No property " + property + " in " + + // node); + } Property prop = node.getProperty(property); if (value == null) { prop.remove(); @@ -309,8 +314,12 @@ public class Jcr { prop.setValue((String) value); else if (value instanceof Long) prop.setValue((Long) value); + else if (value instanceof Integer) + prop.setValue(((Integer) value).longValue()); else if (value instanceof Double) prop.setValue((Double) value); + else if (value instanceof Float) + prop.setValue(((Float) value).doubleValue()); else if (value instanceof Calendar) prop.setValue((Calendar) value); else if (value instanceof BigDecimal)