Hi, I'm looking at an issue [0] where "copying" of a JCR value fails, because the source and destination repository implementation are different.
so basically: s1 = repository1.login(); // remote repository via davex s2 = repository2.login(); // local oak repository p1 = s1.getProperty(....); n2 = s2.getNode(....); n2.setProperty(p1.getName(), p1.getValue()); AFAICT, this usually works but not for binary values. it eventually fails in: org.apache.jackrabbit.oak.plugins.value.ValueImpl#getBlob(javax.jcr.Value) public static Blob getBlob(Value value) { checkState(value instanceof ValueImpl); return ((ValueImpl) value).getBlob(); } ...because the value is not a ValueImpl but a QValue. IMO, this should work, even if the value is not a ValueImpl. In this case, it should fall back to the API methods to read the binary. WDYT? Regards, Toby [0] https://issues.apache.org/jira/browse/JCRVLT-58