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)

Reply via email to