diff --git a/source/java/org/alfresco/opencmis/CMISConnector.java b/source/java/org/alfresco/opencmis/CMISConnector.java index 137f79f1c4..6b6c650cc5 100644 --- a/source/java/org/alfresco/opencmis/CMISConnector.java +++ b/source/java/org/alfresco/opencmis/CMISConnector.java @@ -1209,8 +1209,8 @@ public class CMISConnector implements ApplicationContextAware, ApplicationListen else { long off = (offset == null ? 0 : offset.longValue()); - long len = (length == null ? contentReader.getSize() : length.longValue()) - off; - if (len > contentReader.getSize()) + long len = (length == null ? contentReader.getSize() : length.longValue()); + if (off + len > contentReader.getSize()) { len = contentReader.getSize() - off; } diff --git a/source/java/org/alfresco/opencmis/RangeInputStream.java b/source/java/org/alfresco/opencmis/RangeInputStream.java index 1cdf0ba1dc..2e42b45d84 100644 --- a/source/java/org/alfresco/opencmis/RangeInputStream.java +++ b/source/java/org/alfresco/opencmis/RangeInputStream.java @@ -65,6 +65,11 @@ public class RangeInputStream extends InputStream @Override public int read(byte[] b, int off, int len) throws IOException { + if(length - bytesRead == 0) + { + return -1; + } + if (len > length - bytesRead) { len = (int) (length - bytesRead);