Hi Mark,
It's probably the other way round: 0.8.0 returns null and 0.10.0
returns an empty list.
The OpenCMIS API was inconsistent in regards to empty and non-existing
lists. Some parts of the API returned null, others empty lists. It was
also binding dependent. For example, the Web Services binding always
returned empty lists (it cannot distinguish between an empty list and a
non-existing list) while the AtomPub and the Browser binding returned
null in some places, but not everywhere.
It's now more consistent since the 0.10.0 release. Wherever a list is
returned that does not exist (that is the server didn't send data) an
empty Java list is returned - regardless of the binding.
That should help building more binding independent code. The change may
have some side effects on existing code, though.
- Florian
Chemistry Experts
I have what I hope is an easy clarification question:
We currently have 2 development streams for our client side code
where we
use:
- OpenCMIS - 0.8.0-RELEASE on the client side and Alfresco
Enterprise
4.1.5 on the server side
- OpenCMIS - 0.10.0-RELEASE on the client side and Alfresco
Enterprise
4.1.5 on the server side
Note that the SAME Alfresco server is being used as the "back-end" in
each
case - and the same target Folder is queried to return the list of
Document
objects and then fetch available *renditions*
The snippet of code that we are using looks like this:
OperationContext context = session.createOperationContext();
context.setRenditionFilterString("cmis:thumbnail");
CmisObject targetDocument = session.getObject(documentId,
context);
* List<Rendition> renditions = targetDocument.getRenditions();*
When looping through the set of "Document" objects, we make this call
above
and it works correctly each time - however we now notice one
significant
difference:
*If cmis:thumbnail does NOT exist for a particular documentId we
observe
the following:*
with OpenCMIS - 0.8.0-RELEASE - the List<Rendition> comes back as
*non-null
*and with a count of ZERO
with OpenCMIS - 0.10.0-RELEASE - the List<Rendition> comes back as
null only
Am I misunderstanding something? I realize the back-end service is
going
to return some object on this call and given that this is the SAME
server
(that would assume to be the same) ... but 2 different client
implementations (both are using AtomPub binding), and stepping
through the
Debugger, for the same document request, the behavior is different.
... not sure what else could explain it beyond the difference in
client
side libraries version being used.
Thanks
Mark