Program: 11580
Project: 11580
Buggy source:
@Nonnull @SuppressFBWarnings("String_Node_Str") private CSSPageRule _createPageRule(@Nonnull final CSSNode aNode){
  _expectNodeType(aNode,ECSSNodeType.PAGERULE);
  final int nChildCount=aNode.jjtGetNumChildren();
  if (m_eVersion == ECSSVersion.CSS30) {
    if (nChildCount < 1)     _throwUnexpectedChildrenCount(aNode,"String_Node_Str" + nChildCount + "String_Node_Str");
    final ICommonsList<String> aSelectors=new CommonsArrayList<>();
    for (int nIndex=0; nIndex < nChildCount - 1; ++nIndex) {
      final CSSNode aChildNode=aNode.jjtGetChild(nIndex);
      _expectNodeType(aChildNode,ECSSNodeType.PAGESELECTOR);
      aSelectors.add(aChildNode.getText());
    }
    final CSSPageRule ret=new CSSPageRule(aSelectors);
    ret.setSourceLocation(aNode.getSourceLocation());
    final CSSNode aBodyNode=aNode.jjtGetChild(nChildCount - 1);
    _expectNodeType(aBodyNode,ECSSNodeType.PAGERULEBLOCK);
    final int nBodyChildren=aBodyNode.jjtGetNumChildren();
    for (int nIndex=0; nIndex < nBodyChildren; ++nIndex) {
      final CSSNode aBodyChildNode=aBodyNode.jjtGetChild(nIndex);
      if (ECSSNodeType.STYLEDECLARATION.isNode(aBodyChildNode,m_eVersion)) {
        final CSSDeclaration aDeclaration=_createDeclaration(aBodyChildNode);
        if (aDeclaration != null)         ret.addMember(aDeclaration);
      }
 else       if (ECSSNodeType.PAGEMARGINSYMBOL.isNode(aBodyChildNode,m_eVersion)) {
        final CSSPageMarginBlock aBlock=new CSSPageMarginBlock(aBodyChildNode.getText());
        final CSSNode aBodyNextChildNode=aBodyNode.jjtGetChild(nIndex + 1);
        _readStyleDeclarationList(aBodyNextChildNode,aDeclaration -> aBlock.addDeclaration(aDeclaration));
        ret.addMember(aBlock);
        ++nIndex;
      }
 else       if (!ECSSNodeType.isErrorNode(aBodyChildNode,m_eVersion))       m_aErrorHandler.onCSSInterpretationError("String_Node_Str" + ECSSNodeType.getNodeName(aBodyChildNode,m_eVersion));
    }
    return ret;
  }
 else {
    String sPseudoPage=null;
    int nStartIndex=0;
    if (nChildCount > 0) {
      final CSSNode aFirstChild=aNode.jjtGetChild(0);
      if (ECSSNodeType.PSEUDOPAGE.isNode(aFirstChild,m_eVersion)) {
        sPseudoPage=aFirstChild.getText();
        nStartIndex++;
      }
    }
    final CSSPageRule ret=new CSSPageRule(sPseudoPage);
    ret.setSourceLocation(aNode.getSourceLocation());
    for (int nIndex=nStartIndex; nIndex < nChildCount; ++nIndex) {
      final CSSNode aChildNode=aNode.jjtGetChild(nIndex);
      if (ECSSNodeType.STYLEDECLARATIONLIST.isNode(aChildNode,m_eVersion)) {
        _readStyleDeclarationList(aChildNode,aDeclaration -> ret.addMember(aDeclaration));
      }
 else       if (!ECSSNodeType.isErrorNode(aChildNode,m_eVersion))       m_aErrorHandler.onCSSInterpretationError("String_Node_Str" + ECSSNodeType.getNodeName(aChildNode,m_eVersion));
    }
    return ret;
  }
}

Fixed version (ground truth):
@Nonnull @SuppressFBWarnings("String_Node_Str") private CSSPageRule _createPageRule(@Nonnull final CSSNode aNode){
  _expectNodeType(aNode,ECSSNodeType.PAGERULE);
  final int nChildCount=aNode.jjtGetNumChildren();
  if (m_eVersion == ECSSVersion.CSS30) {
    if (nChildCount < 1)     _throwUnexpectedChildrenCount(aNode,"String_Node_Str" + nChildCount + "String_Node_Str");
    final ICommonsList<String> aSelectors=new CommonsArrayList<>();
    for (int nIndex=0; nIndex < nChildCount - 1; ++nIndex) {
      final CSSNode aChildNode=aNode.jjtGetChild(nIndex);
      _expectNodeType(aChildNode,ECSSNodeType.PAGESELECTOR);
      aSelectors.add(aChildNode.getText());
    }
    final CSSPageRule ret=new CSSPageRule(aSelectors);
    ret.setSourceLocation(aNode.getSourceLocation());
    final CSSNode aBodyNode=aNode.jjtGetChild(nChildCount - 1);
    _expectNodeType(aBodyNode,ECSSNodeType.PAGERULEBLOCK);
    final int nBodyChildren=aBodyNode.jjtGetNumChildren();
    for (int nIndex=0; nIndex < nBodyChildren; ++nIndex) {
      final CSSNode aBodyChildNode=aBodyNode.jjtGetChild(nIndex);
      if (ECSSNodeType.STYLEDECLARATION.isNode(aBodyChildNode,m_eVersion)) {
        final CSSDeclaration aDeclaration=_createDeclaration(aBodyChildNode);
        if (aDeclaration != null)         ret.addMember(aDeclaration);
      }
 else       if (ECSSNodeType.PAGEMARGINSYMBOL.isNode(aBodyChildNode,m_eVersion)) {
        final CSSPageMarginBlock aBlock=new CSSPageMarginBlock(aBodyChildNode.getText());
        final CSSNode aBodyNextChildNode=aBodyNode.jjtGetChild(nIndex + 1);
        _readStyleDeclarationList(aBodyNextChildNode,aDeclaration -> aBlock.addDeclaration(aDeclaration));
        ret.addMember(aBlock);
        ++nIndex;
      }
 else       if (!ECSSNodeType.isErrorNode(aBodyChildNode,m_eVersion))       m_aErrorHandler.onCSSInterpretationError("String_Node_Str" + ECSSNodeType.getNodeName(aBodyChildNode,m_eVersion));
    }
    return ret;
  }
  String sPseudoPage=null;
  int nStartIndex=0;
  if (nChildCount > 0) {
    final CSSNode aFirstChild=aNode.jjtGetChild(0);
    if (ECSSNodeType.PSEUDOPAGE.isNode(aFirstChild,m_eVersion)) {
      sPseudoPage=aFirstChild.getText();
      nStartIndex++;
    }
  }
  final CSSPageRule ret=new CSSPageRule(sPseudoPage);
  ret.setSourceLocation(aNode.getSourceLocation());
  for (int nIndex=nStartIndex; nIndex < nChildCount; ++nIndex) {
    final CSSNode aChildNode=aNode.jjtGetChild(nIndex);
    if (ECSSNodeType.STYLEDECLARATIONLIST.isNode(aChildNode,m_eVersion)) {
      _readStyleDeclarationList(aChildNode,aDeclaration -> ret.addMember(aDeclaration));
    }
 else     if (!ECSSNodeType.isErrorNode(aChildNode,m_eVersion))     m_aErrorHandler.onCSSInterpretationError("String_Node_Str" + ECSSNodeType.getNodeName(aChildNode,m_eVersion));
  }
  return ret;
}