Buggy code:
public final class Strings { public static final String LINE_SEPARATOR ; private static final char [ ] HEX_DIGIT = new char [ ] { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' } ; private static final Pattern HTML_NUMBER_REGEX = Pattern . compile ( "&#\\d+;" ) ; private Strings ( ) { } public static String afterFirst ( final String s , final char c ) { } public static String afterFirstPathComponent ( final String path , final char separator ) { } public static String afterLast ( final String s , final char c ) { } public static String beforeFirst ( final String s , final char c ) { } public static String beforeLast ( final String s , final char c ) { } public static String beforeLastPathComponent ( final String path , final char separator ) { } public static String capitalize ( final String s ) { } public static CharSequence escapeMarkup ( final String s ) { } public static CharSequence escapeMarkup ( final String s , final boolean escapeSpaces ) { } public static CharSequence escapeMarkup ( final String s , final boolean escapeSpaces , final boolean convertToHtmlUnicodeEscapes ) { if ( s == null ) { return null ; } else { int len = s . length ( ) ; final AppendingStringBuffer buffer = new AppendingStringBuffer ( ( ( int ) ( len * 1.1 ) ) ) ; for ( int i = 0 ; i < len ; i ++ ) { final char c = s . charAt ( i ) ; switch ( c ) { case '\t' : if ( escapeSpaces ) { buffer . append ( "&nbsp;&nbsp;&nbsp;&nbsp;" ) ; } else { buffer . append ( c ) ; } break ; case '<seq2seq4repair_space>' : if ( escapeSpaces ) { buffer . append ( "&nbsp;" ) ; } else { buffer . append ( c ) ; } break ; case '<' : buffer . append ( "&lt;" ) ; break ; case '>' : buffer . append ( "&gt;" ) ; break ; case '&' : buffer . append ( "&amp;" ) ; break ; case '"' : buffer . append ( "&quot;" ) ; break ; case '\'' : buffer . append ( "&#039;" ) ; break ; default : if ( convertToHtmlUnicodeEscapes ) { int ci = 65535 & c ; <START_BUG> if ( ci < 160 ) { <END_BUG> buffer . append ( c ) ; } else { buffer . append ( "&#" ) ; buffer . append ( Integer . toString ( ci ) ) ; buffer . append ( ';' ) ; } } else { buffer . append ( c ) ; } break ; } } return buffer ; } } public static String firstPathComponent ( final String path , final char separator ) { } public static String fromEscapedUnicode ( final String escapedUnicodeString ) { } public static boolean isEmpty ( final CharSequence string ) { } public static boolean isEqual ( final String string1 , final String string2 ) { } public static boolean isTrue ( final String s ) throws StringValueConversionException { } public static String join ( final String separator , final List < String > fragments ) { } public static String join ( final String separator , final String ... fragments ) { } public static String lastPathComponent ( final String path , final char separator ) { } public static CharSequence replaceAll ( final CharSequence s , final CharSequence searchFor , CharSequence replaceWith ) { } public static String replaceHtmlEscapeNumber ( String str ) { } public static String [ ] split ( final String s , final char c ) { } public static String stripEnding ( final String s , final String ending ) { } public static String stripJSessionId ( final String url ) { } public static Boolean toBoolean ( final String s ) throws StringValueConversionException { } public static char toChar ( final String s ) throws StringValueConversionException { } public static String toEscapedUnicode ( final String unicodeString ) { } public static CharSequence toMultilineMarkup ( final CharSequence s ) { } public static String toString ( final Object object ) { } public static String toString ( final Throwable throwable ) { } private static void append ( final AppendingStringBuffer buffer , final CharSequence s , final int from , final int to ) { } private static void outputThrowable ( final Throwable cause , final AppendingStringBuffer sb , final boolean stopAtWicketServlet ) { } private static int search ( final CharSequence s , final String searchString , final int pos ) { } private static char toHex ( final int nibble ) { } public static int lengthInBytes ( final String string , final Charset charset ) { } public static boolean startsWith ( final String str , final String prefix , final boolean caseSensitive ) { } public static int indexOf ( final CharSequence sequence , final char ch ) { } }

Fix:
if ( ( ci > 31 ) && ( ci < 160 ) ) {