aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlivehl <livehl@126.com>2022-10-12 08:50:12 +0800
committerGitHub <noreply@github.com>2022-10-11 17:50:12 -0700
commitc34f04b35ba2f528d7ebfd183f0826c2632a339b (patch)
tree2b89f0fbe1118e83b88cff822e42497827ff66de
parentf6c8720ded2158eeb2ae103b41e029ace092af55 (diff)
downloadseaweedfs-c34f04b35ba2f528d7ebfd183f0826c2632a339b.tar.xz
seaweedfs-c34f04b35ba2f528d7ebfd183f0826c2632a339b.zip
fix bug : read error when position after 2147483647 (#3829)
Co-authored-by: huang.lin <hh@chaintool.ai>
-rw-r--r--other/java/client/src/main/java/seaweedfs/client/SeaweedInputStream.java5
1 files changed, 2 insertions, 3 deletions
diff --git a/other/java/client/src/main/java/seaweedfs/client/SeaweedInputStream.java b/other/java/client/src/main/java/seaweedfs/client/SeaweedInputStream.java
index 9d1fb3417..64754321b 100644
--- a/other/java/client/src/main/java/seaweedfs/client/SeaweedInputStream.java
+++ b/other/java/client/src/main/java/seaweedfs/client/SeaweedInputStream.java
@@ -119,9 +119,8 @@ public class SeaweedInputStream extends InputStream {
long bytesRead = 0;
int len = buf.remaining();
- int start = (int) this.position;
- if (start + len <= entry.getContent().size()) {
- entry.getContent().substring(start, start + len).copyTo(buf);
+ if (this.position< Integer.MAX_VALUE && (this.position + len )<= entry.getContent().size()) {
+ entry.getContent().substring((int)this.position, (int)(this.position + len)).copyTo(buf);
} else {
bytesRead = SeaweedRead.read(this.filerClient, this.visibleIntervalList, this.position, buf, SeaweedRead.fileSize(entry));
}