You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by "Florian Müller (JIRA)" <ji...@apache.org> on 2015/04/09 10:50:12 UTC
[jira] [Updated] (CMIS-906) doc.getContentStreamLength() returns
the length of whole content even it is partial retrieved
[ https://issues.apache.org/jira/browse/CMIS-906?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Florian Müller updated CMIS-906:
--------------------------------
Description:
I have a test to just retrieve partial content:
{code:java}
public void getContentRange() throws IOException{
byte[] content = "Hello World, this is for contentstream range test!".getBytes();
InputStream stream = new ByteArrayInputStream(content);
ContentStream contentStream = session.getObjectFactory().createContentStream("hello.txt", content.length, "text/plain", stream);
// (minimal set: name and object type id)
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.OBJECT_TYPE_ID, BaseTypeId.CMIS_DOCUMENT.value());
properties.put(PropertyIds.NAME, "hello");
Document doc = this.scratchFolder.createDocument(properties, contentStream, VersioningState.MAJOR);
ContentStream retrieved = doc.getContentStream("0", BigInteger.valueOf(5), BigInteger.valueOf(5));
System.out.println("streamlength: " + doc.getContentStreamLength());
}
{code}
The test only retrieve from position 5, length 5 of contentstream, but the {{doc.getContentStreamlength()}} actually return 50 (the length of whole ocntent).
On server side implmentation, we actually set the length to 5:
ContentStream [filename=hello.txt, length=5, MIME type=text/plain, has stream=true][extensions=null]
I traced the client.bindings.spi.atompub.ObjectServiceImple, the response header is:
{noformat}
{cache-control=[private, max-age=0], content-type=[text/plain], null=[HTTP/1.1 206 Partial Content], transfer-encoding=[chunked], content-disposition=[attachment; filename=hello.txt], content-language=[en-US], server=[Apache-Chemistry-OpenCMIS/1.0.0-SNAPSHOT], date=[Thu, 09 Apr 2015 06:43:24 GMT], content-range=[bytes 5-9/*]}
{noformat}
The code set the length using {{result.setLength(resp.getContentLength());}}
Is this a bug?
was:
I have a test to just retrieve partial content:
public void getContentRange() throws IOException{
byte[] content = "Hello World, this is for contentstream range test!".getBytes();
InputStream stream = new ByteArrayInputStream(content);
ContentStream contentStream = session.getObjectFactory().createContentStream("hello.txt", content.length, "text/plain", stream);
// (minimal set: name and object type id)
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.OBJECT_TYPE_ID, BaseTypeId.CMIS_DOCUMENT.value());
properties.put(PropertyIds.NAME, "hello");
Document doc = this.scratchFolder.createDocument(properties, contentStream, VersioningState.MAJOR);
ContentStream retrieved = doc.getContentStream("0", BigInteger.valueOf(5), BigInteger.valueOf(5));
System.out.println("streamlength: " + doc.getContentStreamLength());
}
The test only retrieve from position 5, length 5 of contentstream, but the doc.getContentStreamlength() actually return 50( the length of whole ocntent).
On server side implmentation, we actually set the length to 5:
ContentStream [filename=hello.txt, length=5, MIME type=text/plain, has stream=true][extensions=null]
I traced the client.bindings.spi.atompub.ObjectServiceImple, the response header is:
{cache-control=[private, max-age=0], content-type=[text/plain], null=[HTTP/1.1 206 Partial Content], transfer-encoding=[chunked], content-disposition=[attachment; filename=hello.txt], content-language=[en-US], server=[Apache-Chemistry-OpenCMIS/1.0.0-SNAPSHOT], date=[Thu, 09 Apr 2015 06:43:24 GMT], content-range=[bytes 5-9/*]}
The code set the length using result.setLength(resp.getContentLength());
Is this a bug?
> doc.getContentStreamLength() returns the length of whole content even it is partial retrieved
> ---------------------------------------------------------------------------------------------
>
> Key: CMIS-906
> URL: https://issues.apache.org/jira/browse/CMIS-906
> Project: Chemistry
> Issue Type: Bug
> Components: opencmis-client-bindings
> Affects Versions: OpenCMIS 0.13.0
> Environment: WIN
> Reporter: James Li
> Priority: Minor
>
> I have a test to just retrieve partial content:
> {code:java}
> public void getContentRange() throws IOException{
> byte[] content = "Hello World, this is for contentstream range test!".getBytes();
> InputStream stream = new ByteArrayInputStream(content);
> ContentStream contentStream = session.getObjectFactory().createContentStream("hello.txt", content.length, "text/plain", stream);
>
> // (minimal set: name and object type id)
> Map<String, Object> properties = new HashMap<String, Object>();
> properties.put(PropertyIds.OBJECT_TYPE_ID, BaseTypeId.CMIS_DOCUMENT.value());
> properties.put(PropertyIds.NAME, "hello");
>
> Document doc = this.scratchFolder.createDocument(properties, contentStream, VersioningState.MAJOR);
>
> ContentStream retrieved = doc.getContentStream("0", BigInteger.valueOf(5), BigInteger.valueOf(5));
> System.out.println("streamlength: " + doc.getContentStreamLength());
> }
> {code}
> The test only retrieve from position 5, length 5 of contentstream, but the {{doc.getContentStreamlength()}} actually return 50 (the length of whole ocntent).
> On server side implmentation, we actually set the length to 5:
> ContentStream [filename=hello.txt, length=5, MIME type=text/plain, has stream=true][extensions=null]
> I traced the client.bindings.spi.atompub.ObjectServiceImple, the response header is:
> {noformat}
> {cache-control=[private, max-age=0], content-type=[text/plain], null=[HTTP/1.1 206 Partial Content], transfer-encoding=[chunked], content-disposition=[attachment; filename=hello.txt], content-language=[en-US], server=[Apache-Chemistry-OpenCMIS/1.0.0-SNAPSHOT], date=[Thu, 09 Apr 2015 06:43:24 GMT], content-range=[bytes 5-9/*]}
> {noformat}
> The code set the length using {{result.setLength(resp.getContentLength());}}
> Is this a bug?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)