Program: 11583
Project: 11583
Buggy source:
@Nonnull private CSSExpressionMemberMathProduct _createExpressionMathProduct(@Nonnull final CSSNode aNode){
  _expectNodeType(aNode,ECSSNodeType.MATHPRODUCT);
  final CSSExpressionMemberMathProduct ret=new CSSExpressionMemberMathProduct();
  ret.setSourceLocation(aNode.getSourceLocation());
  for (  final CSSNode aChildNode : aNode) {
    if (ECSSNodeType.MATHUNIT.isNode(aChildNode,m_eVersion)) {
      final int nChildCount=aChildNode.jjtGetNumChildren();
      if (nChildCount == 0) {
        final CSSExpressionMemberMathUnitSimple aMember=new CSSExpressionMemberMathUnitSimple(aChildNode.getText());
        aMember.setSourceLocation(aChildNode.getSourceLocation());
        ret.addMember(aMember);
      }
 else       if (nChildCount == 1 && ECSSNodeType.FUNCTION.isNode(aChildNode.jjtGetChild(0),m_eVersion)) {
        ret.addMember(_createExpressionFunction(aChildNode.jjtGetChild(0)));
      }
 else {
        if ((nChildCount % 2) != 1)         _throwUnexpectedChildrenCount(aChildNode,"String_Node_Str" + nChildCount);
        final CSSExpressionMemberMathProduct aNestedProduct=new CSSExpressionMemberMathProduct();
        for (int i=0; i < nChildCount; ++i) {
          final CSSNode aChildChildNode=aChildNode.jjtGetChild(i);
          if (ECSSNodeType.MATHPRODUCT.isNode(aChildChildNode,m_eVersion)) {
            aNestedProduct.addMember(_createExpressionMathProduct(aChildChildNode));
          }
 else           if (ECSSNodeType.MATHSUMOPERATOR.isNode(aChildChildNode,m_eVersion)) {
            final String sText=aChildChildNode.getText();
            final ECSSMathOperator eMathOp=ECSSMathOperator.getFromNameOrNull(sText);
            if (eMathOp == null)             s_aLogger.error("String_Node_Str" + sText + "String_Node_Str");
 else             aNestedProduct.addMember(eMathOp);
          }
 else           s_aLogger.error("String_Node_Str" + ECSSNodeType.getNodeName(aChildNode,m_eVersion) + "String_Node_Str"+ ECSSNodeType.getNodeName(aChildChildNode,m_eVersion));
        }
        ret.addMember(new CSSExpressionMemberMathUnitProduct(aNestedProduct));
      }
    }
 else     if (ECSSNodeType.MATHPRODUCTOPERATOR.isNode(aChildNode,m_eVersion)) {
      final String sText=aChildNode.getText();
      final ECSSMathOperator eMathOp=ECSSMathOperator.getFromNameOrNull(sText);
      if (eMathOp == null)       s_aLogger.error("String_Node_Str" + sText + "String_Node_Str");
 else       ret.addMember(eMathOp);
    }
 else     s_aLogger.error("String_Node_Str" + ECSSNodeType.getNodeName(aNode,m_eVersion) + "String_Node_Str"+ ECSSNodeType.getNodeName(aChildNode,m_eVersion));
  }
  return ret;
}

Fixed version (ground truth):
@Nonnull private CSSExpressionMemberMathProduct _createExpressionMathProduct(@Nonnull final CSSNode aNode){
  _expectNodeType(aNode,ECSSNodeType.MATHPRODUCT);
  final CSSExpressionMemberMathProduct ret=new CSSExpressionMemberMathProduct();
  ret.setSourceLocation(aNode.getSourceLocation());
  for (  final CSSNode aChildNode : aNode) {
    if (ECSSNodeType.MATHUNIT.isNode(aChildNode,m_eVersion)) {
      final int nChildCount=aChildNode.jjtGetNumChildren();
      if (nChildCount == 0) {
        final CSSExpressionMemberMathUnitSimple aMember=new CSSExpressionMemberMathUnitSimple(aChildNode.getText());
        aMember.setSourceLocation(aChildNode.getSourceLocation());
        ret.addMember(aMember);
      }
 else       if (nChildCount == 1 && ECSSNodeType.FUNCTION.isNode(aChildNode.jjtGetChild(0),m_eVersion)) {
        ret.addMember(_createExpressionFunction(aChildNode.jjtGetChild(0)));
      }
 else {
        if ((nChildCount % 2) == 0)         _throwUnexpectedChildrenCount(aChildNode,"String_Node_Str" + nChildCount);
        final CSSExpressionMemberMathProduct aNestedProduct=new CSSExpressionMemberMathProduct();
        for (int i=0; i < nChildCount; ++i) {
          final CSSNode aChildChildNode=aChildNode.jjtGetChild(i);
          if (ECSSNodeType.MATHPRODUCT.isNode(aChildChildNode,m_eVersion)) {
            aNestedProduct.addMember(_createExpressionMathProduct(aChildChildNode));
          }
 else           if (ECSSNodeType.MATHSUMOPERATOR.isNode(aChildChildNode,m_eVersion)) {
            final String sText=aChildChildNode.getText();
            final ECSSMathOperator eMathOp=ECSSMathOperator.getFromNameOrNull(sText);
            if (eMathOp == null)             s_aLogger.error("String_Node_Str" + sText + "String_Node_Str");
 else             aNestedProduct.addMember(eMathOp);
          }
 else           s_aLogger.error("String_Node_Str" + ECSSNodeType.getNodeName(aChildNode,m_eVersion) + "String_Node_Str"+ ECSSNodeType.getNodeName(aChildChildNode,m_eVersion));
        }
        ret.addMember(new CSSExpressionMemberMathUnitProduct(aNestedProduct));
      }
    }
 else     if (ECSSNodeType.MATHPRODUCTOPERATOR.isNode(aChildNode,m_eVersion)) {
      final String sText=aChildNode.getText();
      final ECSSMathOperator eMathOp=ECSSMathOperator.getFromNameOrNull(sText);
      if (eMathOp == null)       s_aLogger.error("String_Node_Str" + sText + "String_Node_Str");
 else       ret.addMember(eMathOp);
    }
 else     s_aLogger.error("String_Node_Str" + ECSSNodeType.getNodeName(aNode,m_eVersion) + "String_Node_Str"+ ECSSNodeType.getNodeName(aChildNode,m_eVersion));
  }
  return ret;
}