Buggy code:
public class TextUtil { private static Iso6937ToUnicode iso6937ToUnicode = new Iso6937ToUnicode ( ) ; private static Map < String , String > langCharDecodingMap = new HashMap < String , String > ( ) ; private static String defaultLang = "chi" ; public static String getDefaultLang ( ) { } public static void setDefaultLang ( String defaultLang ) { } private static String getDefaultCodingByLang ( String ISO_639_language_code ) { } public static boolean containLang ( String lang ) { } public static String getTextFromByte ( byte [ ] buffer , List < NodeValue > values ) throws UnsupportedEncodingException { if ( ( buffer == null ) || ( ( buffer . length ) <= 0 ) ) { return null ; } int length = buffer . length ; int controlCode = ( buffer [ 0 ] ) & 255 ; int controlCodeLen = 0 ; String charMap = null ; String text = null ; int ISO_639_language_code_raw = 0 ; byte [ ] ISO_639_language_code_bytes = new byte [ 3 ] ; String ISO_639_language_code = null ; if ( ( controlCode >= 32 ) && ( controlCode <= 255 ) ) { String coding = null ; String str = null ; Object value = TSUtil . getObjectByName ( values , "ISO_639_language_code" ) ; if ( value != null ) { ISO_639_language_code_raw = ( ( Long ) ( value ) ) . intValue ( ) ; ISO_639_language_code_bytes [ 0 ] = ( ( byte ) ( ISO_639_language_code_raw > > 16 ) ) ; ISO_639_language_code_bytes [ 1 ] = ( ( byte ) ( ISO_639_language_code_raw > > 8 ) ) ; ISO_639_language_code_bytes [ 2 ] = ( ( byte ) ( ISO_639_language_code_raw > > 0 ) ) ; ISO_639_language_code = new String ( ISO_639_language_code_bytes ) ; coding = TextUtil . getDefaultCodingByLang ( ISO_639_language_code ) ; } else { if ( coding == null ) { coding = TextUtil . getDefaultCodingByLang ( TextUtil . defaultLang ) ; } } if ( coding != null ) { str = new String ( buffer , coding ) ; } else { char [ ] arb = new char [ buffer . length ] ; for ( int i = 0 ; i < ( arb . length ) ; i ++ ) { arb [ i ] = ( ( char ) ( ( buffer [ i ] ) & 255 ) ) ; } <START_BUG> str = TextUtil . iso6937ToUnicode . convert ( new String ( arb ) ) ; <END_BUG> } return str ; } else if ( ( controlCode >= 1 ) && ( controlCode <= 11 ) ) { controlCodeLen = 1 ; charMap = "ISO-8859-" + ( controlCode + 4 ) ; text = new String ( buffer , controlCodeLen , ( length - controlCodeLen ) , charMap ) ; return text ; } else if ( ( ( controlCode == 16 ) && ( length >= 3 ) ) && ( ( buffer [ 1 ] ) == 0 ) ) { controlCodeLen = 3 ; int controlCode2 = buffer [ 2 ] ; charMap = "ISO-8859-" + controlCode2 ; text = new String ( buffer , controlCodeLen , ( length - controlCodeLen ) , charMap ) ; return text ; } else if ( controlCode == 17 ) { controlCodeLen = 1 ; charMap = "UTF-16" ; text = new String ( buffer , controlCodeLen , ( length - controlCodeLen ) , charMap ) ; return text ; } else if ( controlCode == 18 ) { controlCodeLen = 1 ; text = new String ( buffer , controlCodeLen , ( length - controlCodeLen ) ) ; return text ; } else if ( controlCode == 19 ) { controlCodeLen = 1 ; charMap = "GB2312" ; System . out . println ( charMap ) ; text = new String ( buffer , controlCodeLen , ( length - controlCodeLen ) , charMap ) ; return text ; } else if ( controlCode == 20 ) { controlCodeLen = 1 ; charMap = "UTF-16" ; text = new String ( buffer , controlCodeLen , ( length - controlCodeLen ) , charMap ) ; return text ; } else if ( controlCode == 21 ) { controlCodeLen = 1 ; charMap = "UTF-8" ; text = new String ( buffer , controlCodeLen , ( length - controlCodeLen ) , charMap ) ; return text ; } else if ( controlCode == 31 ) { controlCodeLen = 1 ; text = new String ( buffer ) ; return text ; } return new String ( buffer ) ; } public void test ( ) { } }

Fix:
str = TextUtil . iso6937ToUnicode . convert ( arb ) ;