Buggy code:
protected void readExternalClobFromArray ( ArrayInputStream in , int charLen ) throws IOException { } private void resetForMaterialization ( ) { } public void readExternal ( ObjectInput in ) throws IOException { } protected void readExternal ( ObjectInput in , int utflen , final int knownStrLen ) throws IOException { } protected int growBy ( ) { } public void restoreToNull ( ) { } public boolean compare ( int op , DataValueDescriptor other , boolean orderedNulls , boolean unknownRV ) throws StandardException { } public int compare ( DataValueDescriptor other ) throws StandardException { } public Object cloneObject ( ) { } public DataValueDescriptor getClone ( ) { } public DataValueDescriptor getNewNull ( ) { } public StringDataValue getValue ( RuleBasedCollator collatorForComparison ) { } public final void setValueFromResultSet ( ResultSet resultSet , int colNumber , boolean isNullable ) throws SQLException { } public final void setInto ( PreparedStatement ps , int position ) throws SQLException , StandardException { } public void setValue ( Clob theValue ) { } public void setValue ( String theValue ) { } public void setValue ( boolean theValue ) throws StandardException { } public void setValue ( int theValue ) throws StandardException { } public void setValue ( double theValue ) throws StandardException { } public void setValue ( float theValue ) throws StandardException { } public void setValue ( short theValue ) throws StandardException { } public void setValue ( long theValue ) throws StandardException { } public void setValue ( byte theValue ) throws StandardException { } public void setValue ( byte [ ] theValue ) throws StandardException { } public void setBigDecimal ( Number bigDecimal ) throws StandardException { } public void setValue ( Date theValue , Calendar cal ) throws StandardException { } public void setValue ( Time theValue , Calendar cal ) throws StandardException { } public void setValue ( Timestamp theValue , Calendar cal ) throws StandardException { } private void formatJDBCDate ( Calendar cal , StringBuffer sb ) { } private void formatJDBCTime ( Calendar cal , StringBuffer sb ) { } public final void setValue ( InputStream theStream , int valueLength ) { } public void setObjectForCast ( Object theValue , boolean instanceOfResultType , String resultTypeClassName ) throws StandardException { } protected void setFrom ( DataValueDescriptor theValue ) throws StandardException { } public void normalize ( DataTypeDescriptor desiredType , DataValueDescriptor source ) throws StandardException { } protected void normalize ( DataTypeDescriptor desiredType , String sourceValue ) throws StandardException { } protected final void hasNonBlankChars ( String source , int start , int end ) throws StandardException { } public void setWidth ( int desiredWidth , int desiredScale , boolean errorOnTrunc ) throws StandardException { } public BooleanDataValue equals ( DataValueDescriptor left , DataValueDescriptor right ) throws StandardException { } public BooleanDataValue notEquals ( DataValueDescriptor left , DataValueDescriptor right ) throws StandardException { } public BooleanDataValue lessThan ( DataValueDescriptor left , DataValueDescriptor right ) throws StandardException { } public BooleanDataValue greaterThan ( DataValueDescriptor left , DataValueDescriptor right ) throws StandardException { } public BooleanDataValue lessOrEquals ( DataValueDescriptor left , DataValueDescriptor right ) throws StandardException { } public BooleanDataValue greaterOrEquals ( DataValueDescriptor left , DataValueDescriptor right ) throws StandardException { } public NumberDataValue charLength ( NumberDataValue result ) throws StandardException { } public StringDataValue concatenate ( StringDataValue leftOperand , StringDataValue rightOperand , StringDataValue result ) throws StandardException { } public BooleanDataValue like ( DataValueDescriptor pattern ) throws StandardException { } public BooleanDataValue like ( DataValueDescriptor pattern , DataValueDescriptor escape ) throws StandardException { } public NumberDataValue locate ( StringDataValue searchFrom , NumberDataValue start , NumberDataValue result ) throws StandardException { } public ConcatableDataValue substring ( NumberDataValue start , NumberDataValue length , ConcatableDataValue result , int maxLen ) throws StandardException { } private String trimInternal ( int trimType , char trimChar , String source ) { } public StringDataValue ansiTrim ( int trimType , StringDataValue trimChar , StringDataValue result ) throws StandardException { } public StringDataValue upper ( StringDataValue result ) throws StandardException { } public StringDataValue lower ( StringDataValue result ) throws StandardException { } public int typePrecedence ( ) { } protected static int stringCompare ( String op1 , String op2 ) { } protected int stringCompare ( SQLChar char1 , SQLChar char2 ) throws StandardException { } protected static int stringCompare ( char [ ] op1 , int leftlen , char [ ] op2 , int rightlen ) { } protected CollationKey getCollationKey ( ) throws StandardException { } public String toString ( ) { } public int hashCode ( ) { } int hashCodeForCollation ( ) { } protected StringDataValue getNewVarchar ( ) throws StandardException { } protected void setLocaleFinder ( LocaleFinder localeFinder ) { } private Locale getLocale ( ) throws StandardException { } protected RuleBasedCollator getCollatorForCollation ( ) throws StandardException { } protected LocaleFinder getLocaleFinder ( ) { } protected DateFormat getDateFormat ( ) throws StandardException { } protected DateFormat getTimeFormat ( ) throws StandardException { } protected DateFormat getTimestampFormat ( ) throws StandardException { } protected DateFormat getDateFormat ( Calendar cal ) throws StandardException { } protected DateFormat getTimeFormat ( Calendar cal ) throws StandardException { } protected DateFormat getTimestampFormat ( Calendar cal ) throws StandardException { } private DateFormat setDateFormatCalendar ( DateFormat df , Calendar cal ) { } public int estimateMemoryUsage ( ) { } protected void copyState ( SQLChar other ) { this . value = other . value ; this . rawData = other . rawData ; this . rawLength = other . rawLength ; this . cKey = other . cKey ; this . stream = other . stream ; this . _clobValue = other . _clobValue ; <START_BUG> this . localeFinder = localeFinder ; <END_BUG> } public String getTraceString ( ) throws StandardException { } public StreamHeaderGenerator getStreamHeaderGenerator ( ) { } public void setStreamHeaderFormat ( Boolean inSoftUpgradeMode ) { } private int getClobLength ( ) throws StandardException { } private int rawGetClobLength ( ) throws SQLException { } }

Fix:
this . localeFinder = other . localeFinder ;