Program: 163356
Project: 163356
Buggy source:
/** 
 * Format-specific implementation for writing a single record into the output. <p> The AbstractWriter handles the initialization and processing of the output until it is ready to be written (generally, reorganizing it and passing it on to a   {@link RowWriterProcessor}). <p> It then delegates the record to the writer-specific implementation defined by   {@link #processRow(Object[])}. In general, an implementation of   {@link AbstractWriter#processRow(Object[])} will perform the following steps:<ul> <li>Iterate over each object in the given input and convert it to the expected String representation.</li> <li>The conversion <b>must</b> happen using the provided  {@link AbstractWriter#appender} object. The an individual value is processed, the {@link AbstractWriter#appendValueToRow()} method must be called. This will clear the accumulated value in {@link AbstractWriter#appender} and add it to the output row.</li><li>Format specific separators and other characters must be introduced to the output row using  {@link AbstractWriter#appendToRow(char)}</li> </ul> <p> Once the   {@link #processRow(Object[])} method returns, a row will be written to the output with the processed information, and a newline will be automatically written after the given contents. The newline character sequence will conform to what is specified in {@link Format#getLineSeparator()}<p> This cycle repeats until the writing process is stopped by the user or an error happens. <p> In case of errors, the unchecked exception   {@link TextWritingException} will be thrown and all resources in use will be closed automatically. The exception should contain the cause and more information about the output state when the error happened.
 * @param row the data to be written to the output in the expected format.
 * @see com.univocity.parsers.common.input.CharAppender
 * @see com.univocity.parsers.common.CommonWriterSettings
 */
protected abstract void processRow(Object[] row);

Fixed version (ground truth):
/** 
 * Format-specific implementation for writing a single record into the output. <p> The AbstractWriter handles the initialization and processing of the output until it is ready to be written (generally, reorganizing it and passing it on to a   {@link RowWriterProcessor}). <p> It then delegates the record to the writer-specific implementation defined by   {@link #processRow(Object[])}. In general, an implementation of   {@link AbstractWriter#processRow(Object[])} will perform the following steps:<ul> <li>Iterate over each object in the given input and convert it to the expected String representation.</li> <li>The conversion <b>must</b> happen using the provided  {@link AbstractWriter#appender} object. The an individual value is processed, the {@link AbstractWriter#appendValueToRow()} method must be called.This will clear the accumulated value in  {@link AbstractWriter#appender} and add it to the output row.</li><li>Format specific separators and other characters must be introduced to the output row using  {@link AbstractWriter#appendToRow(char)}</li> </ul> <p> Once the   {@link #processRow(Object[])} method returns, a row will be written to the output with the processed information, and a newline will be automatically written after the given contents, unless this is a{@link com.univocity.parsers.fixed.FixedWidthWriter} whose {@link FixedWidthWriterSettings#getWriteLineSeparatorAfterRecord()} evaluates to {@code false}. The newline character sequence will conform to what is specified in   {@link Format#getLineSeparator()}<p> This cycle repeats until the writing process is stopped by the user or an error happens. <p> In case of errors, the unchecked exception   {@link TextWritingException} will be thrown and all resources in use will be closed automatically. The exception should contain the cause and more information about the output state when the error happened.
 * @param row the data to be written to the output in the expected format.
 * @see com.univocity.parsers.common.input.CharAppender
 * @see com.univocity.parsers.common.CommonWriterSettings
 */
protected abstract void processRow(Object[] row);