--- old/src/share/vm/opto/stringopts.cpp 2015-11-05 13:06:24.141214874 +0100 +++ new/src/share/vm/opto/stringopts.cpp 2015-11-05 13:06:24.073214876 +0100 @@ -1520,7 +1520,7 @@ Node* adr = kit.array_element_address(dst_array, index, T_BYTE); jchar val; if (src_is_byte) { - val = src_array->byte_at(i); + val = src_array->byte_at(i) & 0xff; } else { val = readChar(src_array, i++); }