Program: 92312
Project: 92312
Buggy source:
/** 
 * Writes the specified code point.
 * @throws IOException If an I/O error occurs.
 */
@SuppressWarnings("String_Node_Str") private void write(final int c) throws IOException {
  final StringBuilder buffer=this.buffer;
  if (Characters.isLineOrParagraphSeparator(c)) {
    final boolean skip;
switch (c) {
case '\r':
      skip=false;
    skipLF=true;
  break;
case '\n':
skip=skipLF;
skipLF=false;
break;
default :
skip=false;
skipLF=false;
break;
}
if (!skip) {
endOfLine();
}
if (!isEndOfLineReplaced) {
appendCodePoint(c);
}
 else if (!skip) {
writeLineSeparator();
}
return;
}
skipLF=false;
if (Character.isWhitespace(c)) {
if (printableLength != 0) {
deleteSoftHyphen();
transfer(printableLength);
printableLength=0;
}
if (c != '\t') {
codePointCount++;
}
 else {
final int width=tabulationWidth - (codePointCount % tabulationWidth);
codePointCount+=width;
if (isTabulationExpanded) {
buffer.append(CharSequences.spaces(width));
return;
}
}
buffer.appendCodePoint(c);
return;
}
buffer.appendCodePoint(c);
printableLength=buffer.length();
if (c == X364.ESCAPE) {
isEscapeSequence=true;
return;
}
 else if (isEscapeSequence) {
final char previous=buffer.charAt(printableLength - 2);
if (previous != X364.ESCAPE) {
isEscapeSequence=(c >= '0' && c <= '9');
return;
}
 else if (c == X364.BRACKET) {
return;
}
isEscapeSequence=false;
}
if (++codePointCount > maximalLineLength) {
searchHyp: for (int i=buffer.length(); i > 0; ) {
final int b=buffer.codePointBefore(i);
final int n=Character.charCount(b);
switch (b) {
case '-':
{
if (i >= n && !Character.isLetter(buffer.codePointBefore(i - n))) {
break;
}
}
case Characters.HYPHEN:
case Characters.SOFT_HYPHEN:
{
transfer(i);
break searchHyp;
}
}
i-=n;
}
writeLineSeparator();
final int length=buffer.length();
for (int i=0; i < length; ) {
final int s=buffer.codePointAt(i);
if (!Character.isWhitespace(s)) {
buffer.delete(0,i);
break;
}
i+=Character.charCount(s);
}
printableLength=buffer.length();
codePointCount=buffer.codePointCount(0,printableLength);
onLineBegin(true);
}
}

Fixed version (ground truth):
/** 
 * Writes the specified code point.
 * @throws IOException If an I/O error occurs.
 */
@SuppressWarnings("String_Node_Str") private void write(final int c) throws IOException {
  final StringBuilder buffer=this.buffer;
  if (Characters.isLineOrParagraphSeparator(c)) {
    final boolean skip;
switch (c) {
case '\r':
      skip=false;
    skipLF=true;
  break;
case '\n':
skip=skipLF;
skipLF=false;
break;
default :
skip=false;
skipLF=false;
break;
}
if (!skip) {
endOfLine();
}
if (!isEndOfLineReplaced) {
appendCodePoint(c);
}
 else if (!skip) {
writeLineSeparator();
}
return;
}
skipLF=false;
if (Character.isWhitespace(c)) {
if (printableLength != 0) {
deleteSoftHyphen(printableLength);
transfer(printableLength);
printableLength=0;
}
if (c != '\t') {
codePointCount++;
}
 else {
final int width=tabulationWidth - (codePointCount % tabulationWidth);
codePointCount+=width;
if (isTabulationExpanded) {
buffer.append(CharSequences.spaces(width));
return;
}
}
buffer.appendCodePoint(c);
return;
}
buffer.appendCodePoint(c);
printableLength=buffer.length();
if (c == X364.ESCAPE) {
isEscapeSequence=true;
return;
}
 else if (isEscapeSequence) {
final char previous=buffer.charAt(printableLength - 2);
if (previous != X364.ESCAPE) {
isEscapeSequence=(c >= '0' && c <= '9');
return;
}
 else if (c == X364.BRACKET) {
return;
}
isEscapeSequence=false;
}
if (++codePointCount > maximalLineLength) {
searchHyp: for (int i=buffer.length(); i > 0; ) {
final int b=buffer.codePointBefore(i);
final int n=Character.charCount(b);
switch (b) {
case '-':
{
if (i >= n && !Character.isLetter(buffer.codePointBefore(i - n))) {
break;
}
}
case Characters.HYPHEN:
case Characters.SOFT_HYPHEN:
{
transfer(i);
break searchHyp;
}
}
i-=n;
}
writeLineSeparator();
final int length=buffer.length();
for (int i=0; i < length; ) {
final int s=buffer.codePointAt(i);
if (!Character.isWhitespace(s)) {
buffer.delete(0,i);
break;
}
i+=Character.charCount(s);
}
printableLength=buffer.length();
codePointCount=buffer.codePointCount(0,printableLength);
onLineBegin(true);
}
}