In Solr 3.3, JavaBinCodec.readStr() reads complete string into byte and then converts it into String. FastInputStream is already buffered, so this it not necessary and may take a lot of memory if data string is large.
This patch replaces usage of big byte with usage of dis.readUnsignedByte() for getting characters directly from stream.
Patch reduces memory usage and may slightly improve performance of reading text data in javabin-codec.
JavaBinCodec.readStr() function already has unit test in TestJavaBinCodec, no additional unit test is required.