When ArrowWriter is copying a StringType column to ArrowData, then StringWriter gets data as a ByteBuffer and sets the ArrowBuf using a position of 0. This currently works because of a bug in Arrow
ARROW-1443 that was not making use of the position. This has been fixed as of Arrow 0.7.0 and this surfaced when testing out this version. To fix this, the position of the ByteBuffer should be passed into setSafe instead of 0.