You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by uc...@apache.org on 2017/01/20 15:05:55 UTC
flink git commit: [FLINK-5561] [runtime] Fix
DataInputDeserializer#available()
Repository: flink
Updated Branches:
refs/heads/master 2703d339a -> 6c4644de1
[FLINK-5561] [runtime] Fix DataInputDeserializer#available()
This closes #3171.
Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/6c4644de
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/6c4644de
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/6c4644de
Branch: refs/heads/master
Commit: 6c4644de19ef38ff96abe7ccbca8971f70258905
Parents: 2703d33
Author: Nico Kruber <ni...@data-artisans.com>
Authored: Wed Jan 18 18:52:57 2017 +0100
Committer: Ufuk Celebi <uc...@apache.org>
Committed: Fri Jan 20 16:05:49 2017 +0100
----------------------------------------------------------------------
.../runtime/util/DataInputDeserializer.java | 4 +-
.../runtime/util/DataInputDeserializerTest.java | 59 ++++++++++++++++++++
2 files changed, 61 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flink/blob/6c4644de/flink-runtime/src/main/java/org/apache/flink/runtime/util/DataInputDeserializer.java
----------------------------------------------------------------------
diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/util/DataInputDeserializer.java b/flink-runtime/src/main/java/org/apache/flink/runtime/util/DataInputDeserializer.java
index 9822a83..0f99496 100644
--- a/flink-runtime/src/main/java/org/apache/flink/runtime/util/DataInputDeserializer.java
+++ b/flink-runtime/src/main/java/org/apache/flink/runtime/util/DataInputDeserializer.java
@@ -55,7 +55,7 @@ public class DataInputDeserializer implements DataInputView, java.io.Serializabl
}
// ------------------------------------------------------------------------
- // Chaning buffers
+ // Changing buffers
// ------------------------------------------------------------------------
public void setBuffer(ByteBuffer buffer) {
@@ -98,7 +98,7 @@ public class DataInputDeserializer implements DataInputView, java.io.Serializabl
public int available() {
if (position < end) {
- return end - position - 1;
+ return end - position;
} else {
return 0;
}
http://git-wip-us.apache.org/repos/asf/flink/blob/6c4644de/flink-runtime/src/test/java/org/apache/flink/runtime/util/DataInputDeserializerTest.java
----------------------------------------------------------------------
diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/util/DataInputDeserializerTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/util/DataInputDeserializerTest.java
new file mode 100644
index 0000000..2032d45
--- /dev/null
+++ b/flink-runtime/src/test/java/org/apache/flink/runtime/util/DataInputDeserializerTest.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.flink.runtime.util;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.IOException;
+
+/**
+ * Test suite for the {@link DataInputDeserializer} class.
+ */
+public class DataInputDeserializerTest {
+
+ @Test
+ public void testAvailable() throws Exception {
+ byte[] bytes;
+ DataInputDeserializer dis;
+
+ bytes = new byte[] {};
+ dis = new DataInputDeserializer(bytes, 0, bytes.length);
+ Assert.assertEquals(bytes.length, dis.available());
+
+ bytes = new byte[] {1, 2, 3};
+ dis = new DataInputDeserializer(bytes, 0, bytes.length);
+ Assert.assertEquals(bytes.length, dis.available());
+
+ dis.readByte();
+ Assert.assertEquals(2, dis.available());
+ dis.readByte();
+ Assert.assertEquals(1, dis.available());
+ dis.readByte();
+ Assert.assertEquals(0, dis.available());
+
+ try {
+ dis.readByte();
+ Assert.fail("Did not throw expected IOException");
+ } catch (IOException e) {
+ // ignore
+ }
+ Assert.assertEquals(0, dis.available());
+ }
+}