Guillaume Balaine created BEAM-3649:
---------------------------------------
Summary: HadoopSeekableByteChannel breaks when backing InputStream
doesn't supporte ByteBuffers
Key: BEAM-3649
URL: https://issues.apache.org/jira/browse/BEAM-3649
Project: Beam
Issue Type: Bug
Components: sdk-java-extensions
Affects Versions: 2.2.0, 2.1.0, 2.0.0
Reporter: Guillaume Balaine
Assignee: Reuven Lax
This happened last summer, when I wanted to use S3A as the backing HDFS access
implementation.
This is because while this method is called :
[https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FSDataInputStream.java#L145]
This class does not implement ByteBuffer readable
https://github.com/apache/hadoop/blob/trunk/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java
I fixed it by manually incrementing the read position and copying the backing
array instead of buffering.
[https://github.com/Igosuki/beam/commit/3838f0db43b6422833a045d1f097f6d7643219f1]
I know the s3 direct implementation is the preferred path, but this is
possible, and likely happens to a lot of developers.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)