X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Fruntime%2Forg.argeo.server.jcr%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fjcr%2FJcrUtils.java;h=b862e8fc4da2fec04be3bb76a25b6e015cdb37a5;hb=ebfaa7c9c6c8e93d2a524656878f86d29dbf3d58;hp=a579392dd50e97c7d13d06382f0c3904daf36978;hpb=f69161c50922bc65fe94f79828a4df1565266f66;p=lgpl%2Fargeo-commons.git diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java index a579392dd..b862e8fc4 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/JcrUtils.java @@ -438,16 +438,26 @@ public class JcrUtils { try { Iterator pit = properties.iterator(); - while (pit.hasNext()) { + props: while (pit.hasNext()) { String name = pit.next(); - if (!observed.hasProperty(name)) { + if (!reference.hasProperty(name)) { + if (!observed.hasProperty(name)) + continue props; + Value val = observed.getProperty(name).getValue(); + try { + // empty String but not null + if ("".equals(val.getString())) + continue props; + } catch (Exception e) { + // not parseable as String, silent + } + PropertyDiff pDiff = new PropertyDiff(PropertyDiff.ADDED, + name, null, val); + diffs.put(name, pDiff); + } else if (!observed.hasProperty(name)) { PropertyDiff pDiff = new PropertyDiff(PropertyDiff.REMOVED, name, reference.getProperty(name).getValue(), null); diffs.put(name, pDiff); - } else if (!reference.hasProperty(name)) { - PropertyDiff pDiff = new PropertyDiff(PropertyDiff.ADDED, - name, null, observed.getProperty(name).getValue()); - diffs.put(name, pDiff); } else { Value referenceValue = reference.getProperty(name) .getValue();