[
https://issues.apache.org/jira/browse/FLINK-5561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15831648#comment-15831648
]
ASF GitHub Bot commented on FLINK-5561:
---------------------------------------
Github user NicoK commented on a diff in the pull request:
https://github.com/apache/flink/pull/3171#discussion_r97063511
--- Diff:
flink-runtime/src/test/java/org/apache/flink/runtime/util/DataInputDeserializerTest.java
---
@@ -0,0 +1,58 @@
+/*
+ * 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();
+ } catch (IOException e) {
+ // ignore
--- End diff --
sure, that makes sense
> DataInputDeserializer#available returns one too few
> ---------------------------------------------------
>
> Key: FLINK-5561
> URL: https://issues.apache.org/jira/browse/FLINK-5561
> Project: Flink
> Issue Type: Bug
> Affects Versions: 1.2.0
> Reporter: Nico Kruber
> Assignee: Nico Kruber
>
> DataInputDeserializer#available seems to assume that the position points to
> the last read byte but instead it points to the next byte. Therefore, it
> returns a value which is 1 smaller than the correct one.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)