Thanks for the quick reply!

I created a support ticket at Alfresco.

Geert

----- Original Message -----
From: "David Caruana" <[email protected]>
To: "Florian Müller" <[email protected]>
Cc: [email protected]
Sent: Thursday, July 29, 2010 5:09:14 PM
Subject: Re: Create Relationship and Updatability problem

We'll investigate.

Thanks,
Dave

On 29 Jul 2010, at 15:43, Florian Müller wrote:

> Hi Geert,
> 
> That is an Alfresco bug. The cmis:sourceId and cmis:targetId property 
> definitions are wrong.
> Both are defined with updatability = readonly and required    = true which 
> doesn't make sense. The updatability should be either readwrite or oncreate.
> 
> 
> - Florian
> 
> -----Original Message-----
> From: Geert Vanheusden [mailto:[email protected]] 
> Sent: Donnerstag, 29. Juli 2010 16:33
> To: [email protected]
> Subject: Create Relationship and Updatability problem
> 
> Dear,
> 
> I have the following problem using the OpenCMIS Client and Alfresco 
> Enterprise 3.3. 
> 
> If I want to create a relationship between two documents I use this code:
> 
> =======================
> Map<String, Serializable> relProps = new HashMap<String, Serializable>();
> relProps.put("cmis:sourceId", doc1.getId());
> relProps.put("cmis:targetId", doc2.getId());
> relProps.put("cmis:objectTypeId", "cmis:relationship");
> session.createRelationship(relProps, null, null, null);
> =======================
> 
> When I execute this code I get the following exception: 
> CmisInvalidArgumentException: Source Id is not set!
> 
> When debugging this code I see the following situation.
> The convertProperties in PersistentObjectFactoryImpl is called and when it 
> iterates over the first property (cmis:sourceId) it skips the loop at:
> 
> =======================
> // check updatability
> if (updatabilityFilter != null) {
>     if (!updatabilityFilter.contains(definition.getUpdatability())) {
>         continue;
>     }
> }
> =======================
> 
> If I query the property definition for cmis:sourceId I get a READONLY value 
> from Alfresco which isn't available in the list.
> 
> =======================
>    private static final Set<Updatability> CREATE_UPDATABILITY = new 
> HashSet<Updatability>();
>    static {
>        CREATE_UPDATABILITY.add(Updatability.ONCREATE);
>        CREATE_UPDATABILITY.add(Updatability.READWRITE);
>    }
> =======================
> 
> So it is impossible to create a new Releationship because the cmis:sourceId 
> and cmis:targetId will never be availble after the property conversion.
> 
> Not sure if it is an Alfresco or OpenCMIS bug or just me?
> 
> Hope you guys can point me in the right direction!
> 
> Kind regards,
> 
> Geert
> 

Reply via email to