chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Florian Müller (JIRA) <j...@apache.org>
Subject [jira] [Resolved] (CMIS-808) Document.getContentStream() does not work with EMC Documentum
Date Mon, 09 Jun 2014 16:13:03 GMT

     [ https://issues.apache.org/jira/browse/CMIS-808?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Florian Müller resolved CMIS-808.
---------------------------------

       Resolution: Fixed
    Fix Version/s: OpenCMIS 1.0.0

Instead of "*" I chose "cmis:none" because the rendition data is not required in the this
case (fetching Atom links). I also set more restrictive values for the other parameters. That
should provide a slight performance improvement with some repositories.

> Document.getContentStream() does not work with EMC Documentum
> -------------------------------------------------------------
>
>                 Key: CMIS-808
>                 URL: https://issues.apache.org/jira/browse/CMIS-808
>             Project: Chemistry
>          Issue Type: Bug
>          Components: opencmis-client-bindings
>    Affects Versions: OpenCMIS 0.11.0
>         Environment: Java
>            Reporter: Kristopher Kees
>            Assignee: Florian Müller
>            Priority: Minor
>              Labels: documentum, renditions
>             Fix For: OpenCMIS 1.0.0
>
>
> First timer to JIRA here so please forgive any oversights on my part.
> When getContentStream gets called, it passes a NULL value for the renditionFilter field
on the URL which causes EMC's code to throw a NullPointerException.  If an asterisk is passed
instead, the EMC code returns URLs successfully and allows for successful retrieval of the
content.
> From AbstractAtomPubService.java:
>     public String loadLink(String repositoryId, String id, String rel, String type) {
>         String link = getLink(repositoryId, id, rel, type);
>         if (link == null) {
>             getObjectInternal(repositoryId, IdentifierType.ID, id, ReturnVersion.THIS,
null, null, null, NULL, null,
>                     null, null);
>             link = getLink(repositoryId, id, rel, type);
>         }
>         return link;
>     }
> The above code results in a URL that looks something like this and returns a 500 response:
> http://server:port/cmis/resources/repositories/repo1/objects/0901ba9d8029b1ac?filter=&includeAllowableActions=&includePolicyIds=&includeRelationships=&includeACL=&renditionFilter=
> One simple tweak and the GET results in a 200 response as expected:
> http://epdamdmmk1.fmr.com:12100/cmis/resources/repositories/dctfepsdev1/objects/0901ba9d8029b1ac?filter=&includeAllowableActions=&includePolicyIds=&includeRelationships=&includeACL=&renditionFilter=*
> The easy fix would be to change the call to getObjectInternal to:
> getObjectInternal(repositoryId, IdentifierType.ID, id, ReturnVersion.THIS, null, null,
null, "*", null, null, null);
> Even better would be to retrieve the specified value for renditionFilter on the session
context.  However, BindingSession objects do not appear to share the OperationContext which
is set on the SessionImpl object and which is used by the Session.getObject() call.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message