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());
+	}
+}