You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2017/10/10 23:21:10 UTC
activemq git commit: [AMQ-6831,
AMQ-6771] trigger eofexception on read -1 - AMQ6522Test
Repository: activemq
Updated Branches:
refs/heads/master ada50f74f -> e79326057
[AMQ-6831, AMQ-6771] trigger eofexception on read -1 - AMQ6522Test
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/e7932605
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/e7932605
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/e7932605
Branch: refs/heads/master
Commit: e793260573f30365572a1e7507cd98e9ed17b1b5
Parents: ada50f7
Author: gtully <ga...@gmail.com>
Authored: Wed Oct 11 00:20:26 2017 +0100
Committer: gtully <ga...@gmail.com>
Committed: Wed Oct 11 00:20:44 2017 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/activemq/util/ByteSequence.java | 6 +++++-
.../apache/activemq/store/kahadb/disk/journal/Journal.java | 8 +++++++-
2 files changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq/blob/e7932605/activemq-client/src/main/java/org/apache/activemq/util/ByteSequence.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/util/ByteSequence.java b/activemq-client/src/main/java/org/apache/activemq/util/ByteSequence.java
index ac1e01a..5a19f43 100644
--- a/activemq-client/src/main/java/org/apache/activemq/util/ByteSequence.java
+++ b/activemq-client/src/main/java/org/apache/activemq/util/ByteSequence.java
@@ -75,7 +75,11 @@ public class ByteSequence {
public void reset() {
length = remaining();
- System.arraycopy(data, offset, data, 0, length);
+ if (length > 0) {
+ System.arraycopy(data, offset, data, 0, length);
+ } else {
+ length = 0;
+ }
offset = 0;
}
http://git-wip-us.apache.org/repos/asf/activemq/blob/e7932605/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/Journal.java
----------------------------------------------------------------------
diff --git a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/Journal.java b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/Journal.java
index 8e04414..67d4c86 100644
--- a/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/Journal.java
+++ b/activemq-kahadb-store/src/main/java/org/apache/activemq/store/kahadb/disk/journal/Journal.java
@@ -627,7 +627,13 @@ public class Journal {
private void ensureAvailable(ByteSequence bs, RandomAccessFile reader, int required) throws IOException {
if (bs.remaining() < required) {
bs.reset();
- bs.setLength(bs.length + reader.read(bs.data, bs.length, bs.data.length - bs.length));
+ int read = reader.read(bs.data, bs.length, bs.data.length - bs.length);
+ if (read < 0) {
+ if (bs.remaining() == 0) {
+ throw new EOFException("request for " + required + " bytes reached EOF");
+ }
+ }
+ bs.setLength(bs.length + read);
}
}