Program: 60078
Project: 60078
Buggy source:
@Override public void changeValue(AbstractCSSProperties properties,String newValue,CSSStyleDeclaration declaration,boolean important){
  properties.setPropertyValueLCAlt(FONT,newValue,important);
  if (!Strings.isBlank(newValue)) {
    String fontSpecTL=newValue.toLowerCase();
    FontInfo fontInfo=FontValues.SYSTEM_FONTS.get(fontSpecTL);
    if (fontInfo != null) {
      if (fontInfo.getFontFamily() != null) {
        properties.setPropertyValueLCAlt(FONT_FAMILY,fontInfo.getFontFamily(),important);
      }
      if (fontInfo.getFontSize() != null) {
        properties.setPropertyValueLCAlt(FONT_SIZE,fontInfo.getFontSize(),important);
      }
      if (fontInfo.getFontStyle() != null) {
        properties.setPropertyValueLCAlt(FONT_STYLE,fontInfo.getFontStyle(),important);
      }
      if (fontInfo.getFontVariant() != null) {
        properties.setPropertyValueLCAlt(FONT_VARIANT,fontInfo.getFontVariant(),important);
      }
      if (fontInfo.getFontWeight() != null) {
        properties.setPropertyValueLCAlt(FONT_WEIGHT,fontInfo.getFontWeight(),important);
      }
      return;
    }
    String[] tokens=HtmlValues.splitCssValue(fontSpecTL);
    String token=null;
    int length=tokens.length;
    int i;
    for (i=0; i < length; i++) {
      token=tokens[i];
      if (FontValues.isFontStyle(token)) {
        properties.setPropertyValueLCAlt(FONT_STYLE,token,important);
        continue;
      }
      if (FontValues.isFontVariant(token)) {
        properties.setPropertyValueLCAlt(FONT_VARIANT,token,important);
        continue;
      }
      if (FontValues.isFontWeight(token)) {
        properties.setPropertyValueLCAlt(FONT_WEIGHT,token,important);
        continue;
      }
      break;
    }
    if (token != null) {
      int slashIdx=token.indexOf('/');
      String fontSizeText=slashIdx == -1 ? token : token.substring(0,slashIdx);
      properties.setPropertyValueLCAlt(FONT_SIZE,fontSizeText,important);
      String lineHeightText=slashIdx == -1 ? null : token.substring(slashIdx + 1);
      if (lineHeightText != null) {
        properties.setPropertyValueLCAlt(LINE_HEIGHT,lineHeightText,important);
      }
      if (++i < length) {
        StringBuilder fontFamilyBuff=new StringBuilder();
        do {
          token=tokens[i];
          fontFamilyBuff.append(token);
          fontFamilyBuff.append(' ');
        }
 while (++i < length);
        properties.setPropertyValueLCAlt(FONT_FAMILY,fontFamilyBuff.toString(),important);
      }
    }
  }
}

Fixed version (ground truth):
@Override public void changeValue(AbstractCSSProperties properties,String newValue,CSSStyleDeclaration declaration,boolean important){
  properties.setPropertyValueLCAlt(FONT,newValue,important);
  if (!Strings.isBlank(newValue)) {
    String fontSpecTL=newValue.toLowerCase();
    String[] tokens=HtmlValues.splitCssValue(fontSpecTL);
    String token=null;
    int length=tokens.length;
    int i;
    for (i=0; i < length; i++) {
      token=tokens[i];
      if (FontValues.isFontStyle(token)) {
        properties.setPropertyValueLCAlt(FONT_STYLE,token,important);
        continue;
      }
      if (FontValues.isFontVariant(token)) {
        properties.setPropertyValueLCAlt(FONT_VARIANT,token,important);
        continue;
      }
      if (FontValues.isFontWeight(token)) {
        properties.setPropertyValueLCAlt(FONT_WEIGHT,token,important);
        continue;
      }
      break;
    }
    if (token != null) {
      int slashIdx=token.indexOf('/');
      String fontSizeText=slashIdx == -1 ? token : token.substring(0,slashIdx);
      properties.setPropertyValueLCAlt(FONT_SIZE,fontSizeText,important);
      String lineHeightText=slashIdx == -1 ? null : token.substring(slashIdx + 1);
      if (lineHeightText != null) {
        properties.setPropertyValueLCAlt(LINE_HEIGHT,lineHeightText,important);
      }
      if (++i < length) {
        StringBuilder fontFamilyBuff=new StringBuilder();
        do {
          token=tokens[i];
          fontFamilyBuff.append(token);
          fontFamilyBuff.append(' ');
        }
 while (++i < length);
        properties.setPropertyValueLCAlt(FONT_FAMILY,fontFamilyBuff.toString(),important);
      }
    }
  }
}