Buggy code:
public class FastDateParser implements Serializable , DateParser { private static final long serialVersionUID = 1L ; private static final ConcurrentMap < Locale , FastDateParser . TimeZoneStrategy > tzsCache = new ConcurrentHashMap < Locale , FastDateParser . TimeZoneStrategy > ( 3 ) ; private final String pattern ; private final TimeZone timeZone ; private final Locale locale ; private transient Pattern parsePattern ; private transient FastDateParser . Strategy [ ] strategies ; private transient int thisYear ; private transient ConcurrentMap < Integer , FastDateParser . KeyValue [ ] > nameValues ; private transient String currentFormatField ; private transient FastDateParser . Strategy nextStrategy ; protected FastDateParser ( String pattern , TimeZone timeZone , Locale locale ) { } private void init ( ) { } @ Override public String getPattern ( ) { } @ Override public TimeZone getTimeZone ( ) { } @ Override public Locale getLocale ( ) { } @ Override public boolean equals ( Object obj ) { } @ Override public int hashCode ( ) { } @ Override public String toString ( ) { } private void readObject ( ObjectInputStream in ) throws IOException , ClassNotFoundException { } @ Override public Object parseObject ( String source ) throws ParseException { } @ Override public Date parse ( String source ) throws ParseException { } @ Override public Object parseObject ( String source , ParsePosition pos ) { } @ Override public Date parse ( String source , ParsePosition pos ) { } private static StringBuilder escapeRegex ( StringBuilder regex , String value , boolean unquote ) { } private static class KeyValue { public String key ; public int value ; public KeyValue ( String key , int value ) { } } private static final Comparator < FastDateParser . KeyValue > IGNORE_CASE_COMPARATOR = new Comparator < FastDateParser . KeyValue > ( ) { @ Override public int compare ( FastDateParser . KeyValue left , FastDateParser . KeyValue right ) { } } ; FastDateParser . KeyValue [ ] getDisplayNames ( int field ) { Integer fieldInt = Integer . valueOf ( field ) ; FastDateParser . KeyValue [ ] fieldKeyValues = nameValues . get ( fieldInt ) ; if ( fieldKeyValues == null ) { <START_BUG> DateFormatSymbols symbols = new DateFormatSymbols ( locale ) ; <END_BUG> switch ( field ) { case Calendar . ERA : fieldKeyValues = FastDateParser . createKeyValues ( symbols . getEras ( ) , null ) ; break ; case Calendar . DAY_OF_WEEK : fieldKeyValues = FastDateParser . createKeyValues ( symbols . getWeekdays ( ) , symbols . getShortWeekdays ( ) ) ; break ; case Calendar . AM_PM : fieldKeyValues = FastDateParser . createKeyValues ( symbols . getAmPmStrings ( ) , null ) ; break ; case Calendar . MONTH : fieldKeyValues = FastDateParser . createKeyValues ( symbols . getMonths ( ) , symbols . getShortMonths ( ) ) ; break ; default : throw new IllegalArgumentException ( ( "Invalid<seq2seq4repair_space>field<seq2seq4repair_space>value<seq2seq4repair_space>" + field ) ) ; } FastDateParser . KeyValue [ ] prior = nameValues . putIfAbsent ( fieldInt , fieldKeyValues ) ; if ( prior != null ) { fieldKeyValues = prior ; } } return fieldKeyValues ; } private static FastDateParser . KeyValue [ ] createKeyValues ( String [ ] longValues , String [ ] shortValues ) { } private static int count ( String [ ] values ) { } private static int copy ( FastDateParser . KeyValue [ ] fieldKeyValues , int offset , String [ ] values ) { } protected int adjustYear ( int twoDigitYear ) { } boolean isNextNumber ( ) { } int getFieldWidth ( ) { } private interface Strategy { boolean isNumber ( ) { } void setCalendar ( FastDateParser parser , Calendar cal , String value ) { } boolean addRegex ( FastDateParser parser , StringBuilder regex ) { } } private static final Pattern formatPattern = Pattern . compile ( "D+|E+|F+|G+|H+|K+|M+|S+|W+|Z+|a+|d+|h+|k+|m+|s+|w+|y+|z+|''|'[^']++(''[^']*+)*+'|[^'A-Za-z]++" ) ; private FastDateParser . Strategy getStrategy ( String formatField ) { } private static class CopyQuotedStrategy implements FastDateParser . Strategy { private final String formatField ; CopyQuotedStrategy ( String formatField ) { } @ Override public boolean isNumber ( ) { } @ Override public boolean addRegex ( FastDateParser parser , StringBuilder regex ) { } @ Override public void setCalendar ( FastDateParser parser , Calendar cal , String value ) { } } private static class TextStrategy implements FastDateParser . Strategy { private final int field ; TextStrategy ( int field ) { } @ Override public boolean isNumber ( ) { } @ Override public boolean addRegex ( FastDateParser parser , StringBuilder regex ) { } @ Override public void setCalendar ( FastDateParser parser , Calendar cal , String value ) { } } private static class NumberStrategy implements FastDateParser . Strategy { protected final int field ; NumberStrategy ( int field ) { } @ Override public boolean isNumber ( ) { } @ Override public boolean addRegex ( FastDateParser parser , StringBuilder regex ) { } @ Override public void setCalendar ( FastDateParser parser , Calendar cal , String value ) { } public int modify ( int iValue ) { } } private static final FastDateParser . Strategy ABBREVIATED_YEAR_STRATEGY = new FastDateParser . NumberStrategy ( Calendar . YEAR ) { @ Override public void setCalendar ( FastDateParser parser , Calendar cal , String value ) { } } ; private static class TimeZoneStrategy implements FastDateParser . Strategy { final String validTimeZoneChars ; final SortedMap < String , TimeZone > tzNames = new TreeMap < String , TimeZone > ( String . CASE_INSENSITIVE_ORDER ) ; TimeZoneStrategy ( Locale locale ) { } @ Override public boolean isNumber ( ) { } @ Override public boolean addRegex ( FastDateParser parser , StringBuilder regex ) { } @ Override public void setCalendar ( FastDateParser parser , Calendar cal , String value ) { } } private static final FastDateParser . Strategy ERA_STRATEGY = new FastDateParser . TextStrategy ( Calendar . ERA ) ;

Fix:
DateFormatSymbols symbols = DateFormatSymbols . getInstance ( locale ) ;