Index: ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFUtils.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFUtils.java (revision 1231803) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFUtils.java (working copy) @@ -370,14 +370,15 @@ return -1; } - ByteBuffer src = ByteBuffer.wrap(text.getBytes(), 0, text.getLength()); - ByteBuffer tgt = ByteBuffer - .wrap(subtext.getBytes(), 0, subtext.getLength()); - byte b = tgt.get(); + CharBuffer src = CharBuffer.wrap(text.toString().toCharArray(), 0, text.toString().length()); + CharBuffer tgt = CharBuffer + .wrap(subtext.toString().toCharArray(), 0, subtext.toString().length()); + char b = tgt.get(); src.position(start); while (src.hasRemaining()) { - if (b == src.get()) { // matching first byte + char tmp = src.get(); + if (b == tmp) { // matching first char src.mark(); // save position in loop tgt.mark(); // save position in target boolean found = true;