Hi Dave,
I'm afraid, your only option is to modify the PortCMIS code.
The problem here is that we don't know whether the old or the new value
is valid if there really should only be one value.
In the generic case, it's better to throw an exception than silently
dropping one value. In your case, you may be able to ignore one value.
- Florian
Hello Everyone,
The portCMIS .NET CMIS Rest Client is throwing the following stacktrace
when trying to connect to an IBM Implementation of CMIS.
Type : PortCMIS.Exceptions.CmisConnectionException, PortCMIS,
Version=0.2.0.0, Culture=neutral
Source : PortCMIS
Exception: PortCMIS.Exceptions.CmisConnectionException: Parsing
exception!
---> System.ArgumentException: An item with the same key has already
been
added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource
resource)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue
value, Boolean add)
I believe the error is due to a mistake that was made in an IBM
Implementation of CMIS that gives duplicate entries for
canDelete.Object.
RESTful AtomPub binding service document for CMIS Specification V1.0:
https://cmisserver/fncmis/resources/Service
<cmis:mapping>
<cmis:key>canDelete.Object</cmis:key>
<cmis:permission>cmis:all</cmis:permission>
</cmis:mapping>
<cmis:mapping>
<cmis:key>canDelete.Object</cmis:key>
<cmis:permission>cmis:write</cmis:permission>
<cmis:permission>fn:DELETE</cmis:permission>
</cmis:mapping>
Any server side fixes will likely need to be implemented by IBM and
deployed by me as it is IBM's CMIS implementation with the issue (a
CMIS
interface not based on Apache Chemistry).
I am aware that in future releases from IBM they also offer SOAP and
REST
interfaces built on Apache Chemistry so this issue will be resolved
when
those planned updates are made to my system.
In the meantime I am curious if there are any client side tweaks
(hopefully
configuration as opposed to code) that can be made to relax portCMIS so
that the duplicate cmis:mapping's in the service definition don't
cause
the client to completely fail.
Thank You!
Dave