Program: 99268
Project: 99268
Buggy source:
public void handleNode(ParseContext pContext,Node node) throws IOException {
  ReplayParseContext context=(ReplayParseContext)pContext;
  if (NodeUtils.isRemarkNode(node)) {
    RemarkNode remarkNode=(RemarkNode)node;
    remarkNode.setText(jsBlockTrans.transform(context,remarkNode.getText()));
    emit(context,null,node,null);
  }
 else   if (NodeUtils.isTextNode(node)) {
    TextNode textNode=(TextNode)node;
    if (context.isInCSS()) {
      handleCSSTextNode(context,textNode);
    }
 else     if (context.isInScriptText()) {
      handleJSTextNode(context,textNode);
    }
    emit(context,null,textNode,null);
  }
 else   if (NodeUtils.isTagNode(node)) {
    TagNode tagNode=(TagNode)node;
    if (tagNode.isEndTag()) {
      if (tagNode.getTagName().equals("String_Node_Str")) {
        context.putData(FERRET_IN_HEAD,null);
      }
      if (checkAllowTag(pContext,tagNode)) {
        emit(context,null,tagNode,null);
      }
    }
 else     if (tagNode.getTagName().startsWith("String_Node_Str")) {
      String text=tagNode.getText();
      int s="String_Node_Str".length();
      int e=text.endsWith("String_Node_Str") ? text.length() - 2 : text.length();
      if (context.isInCSS()) {
        TextNode textNode=new TextNode(text.substring(s,e));
        handleCSSTextNode(context,textNode);
        emit(context,"String_Node_Str",textNode,"String_Node_Str");
      }
 else       if (context.isInScriptText()) {
        TextNode textNode=new TextNode(text.substring(s,e));
        handleJSTextNode(context,textNode);
        emit(context,"String_Node_Str",textNode,"String_Node_Str");
      }
 else {
        emit(context,null,tagNode,null);
      }
    }
 else {
      context.setInHTML(true);
      handleOpenTagNode(context,tagNode);
    }
  }
 else {
    throw new IllegalArgumentException("String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * @param pContext
 * @param node
 * @throws IOException
 */
@Override public void handleNode(ParseContext pContext,Node node) throws IOException {
  ReplayParseContext context=(ReplayParseContext)pContext;
  if (NodeUtils.isRemarkNode(node)) {
    RemarkNode remarkNode=(RemarkNode)node;
    remarkNode.setText(jsBlockTrans.transform(context,remarkNode.getText()));
    emit(context,null,node,null);
  }
 else   if (NodeUtils.isTextNode(node)) {
    TextNode textNode=(TextNode)node;
    if (context.isInCSS()) {
      handleCSSTextNode(context,textNode);
    }
 else     if (context.isInScriptText()) {
      handleJSTextNode(context,textNode);
    }
    emit(context,null,textNode,null);
  }
 else   if (NodeUtils.isTagNode(node)) {
    TagNode tagNode=(TagNode)node;
    if (tagNode.isEndTag()) {
      if (tagNode.getTagName().equals("String_Node_Str")) {
        context.putData(FERRET_IN_HEAD,null);
      }
      if (checkAllowTag(pContext,tagNode)) {
        emit(context,null,tagNode,null);
      }
    }
 else     if (tagNode.getTagName().startsWith("String_Node_Str")) {
      String text=tagNode.getText();
      int s="String_Node_Str".length();
      int e=text.endsWith("String_Node_Str") ? text.length() - 2 : text.length();
      if (context.isInCSS()) {
        TextNode textNode=new TextNode(text.substring(s,e));
        handleCSSTextNode(context,textNode);
        emit(context,"String_Node_Str",textNode,"String_Node_Str");
      }
 else       if (context.isInScriptText()) {
        TextNode textNode=new TextNode(text.substring(s,e));
        handleJSTextNode(context,textNode);
        emit(context,"String_Node_Str",textNode,"String_Node_Str");
      }
 else {
        emit(context,null,tagNode,null);
      }
    }
 else {
      context.setInHTML(true);
      handleOpenTagNode(context,tagNode);
    }
  }
 else {
    throw new IllegalArgumentException("String_Node_Str");
  }
}