implReset();
    protected final CoderResult implFlush(CharBuffer out) {       try{           data[OUTPUT_OFFSET] = getArray(out);                        ec=NativeConverter.flushByteToChar(                                            converterHandle,  /* Handle to ICU Converter */                                            output,           /* input array of chars */                                            outEnd,           /* input index+1 to be written */                                            data              /* contains data, inOff,outOff */                                            );                                                              /* If we don't have room for the output, throw an exception*/            if (ErrorCode.isFailure(ec)) {                if (ec == ErrorCode.U_BUFFER_OVERFLOW_ERROR) {                    return CoderResult.OVERFLOW;                }else if (ec == ErrorCode.U_TRUNCATED_CHAR_FOUND) {//CSDL: add this truncated character error handling                    return CoderResult.malformedForLength(data[INPUT_OFFSET]);                }else {                    ErrorCode.getException(ec);                }            }	        implReset();	        return CoderResult.UNDERFLOW;	   }finally{            /* save the flushed data */            setPosition(out);	   }    }