Program: 39509
Project: 39509
Buggy source:
@Override public List<CssDeclaration> resolveShorthand(String shorthandExpression){
  if (UNSUPPORTED_VALUES_OF_FONT_SHORTHAND.contains(shorthandExpression)) {
    Logger logger=LoggerFactory.getLogger(FontShorthandResolver.class);
    logger.error(MessageFormat.format("String_Node_Str",shorthandExpression));
  }
  if (CssConstants.INITIAL.equals(shorthandExpression) || CssConstants.INHERIT.equals(shorthandExpression)) {
    return Arrays.asList(new CssDeclaration(CssConstants.FONT_STYLE,shorthandExpression),new CssDeclaration(CssConstants.FONT_VARIANT,shorthandExpression),new CssDeclaration(CssConstants.FONT_WEIGHT,shorthandExpression),new CssDeclaration(CssConstants.FONT_SIZE,shorthandExpression),new CssDeclaration(CssConstants.LINE_HEIGHT,shorthandExpression),new CssDeclaration(CssConstants.FONT_FAMILY,shorthandExpression));
  }
  String fontStyleValue=null;
  String fontVariantValue=null;
  String fontWeightValue=null;
  String fontSizeValue=null;
  String lineHeightValue=null;
  String fontFamilyValue=null;
  List<String> properties=getFontProperties(shorthandExpression.replaceAll("String_Node_Str","String_Node_Str"));
  for (  String value : properties) {
    int slashSymbolIndex=value.indexOf('/');
    if (CssConstants.ITALIC.equals(value) || CssConstants.OBLIQUE.equals(value)) {
      fontStyleValue=value;
    }
 else     if (CssConstants.SMALL_CAPS.equals(value)) {
      fontVariantValue=value;
    }
 else     if (FONT_WEIGHT_NOT_DEFAULT_VALUES.contains(value)) {
      fontWeightValue=value;
    }
 else     if (slashSymbolIndex > 0) {
      fontSizeValue=value.substring(0,slashSymbolIndex);
      lineHeightValue=value.substring(slashSymbolIndex + 1,value.length());
    }
 else     if (FONT_SIZE_VALUES.contains(value) || CssUtils.isMetricValue(value) || CssUtils.isNumericValue(value)) {
      fontSizeValue=value;
    }
 else {
      fontFamilyValue=value;
    }
  }
  List<CssDeclaration> cssDeclarations=Arrays.asList(new CssDeclaration(CssConstants.FONT_STYLE,fontStyleValue == null ? CssConstants.INITIAL : fontStyleValue),new CssDeclaration(CssConstants.FONT_VARIANT,fontVariantValue == null ? CssConstants.INITIAL : fontVariantValue),new CssDeclaration(CssConstants.FONT_WEIGHT,fontWeightValue == null ? CssConstants.INITIAL : fontWeightValue),new CssDeclaration(CssConstants.FONT_SIZE,fontSizeValue == null ? CssConstants.INITIAL : fontSizeValue),new CssDeclaration(CssConstants.LINE_HEIGHT,lineHeightValue == null ? CssConstants.INITIAL : lineHeightValue),new CssDeclaration(CssConstants.FONT_FAMILY,fontFamilyValue == null ? CssConstants.INITIAL : fontFamilyValue));
  return cssDeclarations;
}

Fixed version (ground truth):
@Override public List<CssDeclaration> resolveShorthand(String shorthandExpression){
  if (UNSUPPORTED_VALUES_OF_FONT_SHORTHAND.contains(shorthandExpression)) {
    Logger logger=LoggerFactory.getLogger(FontShorthandResolver.class);
    logger.error(MessageFormat.format("String_Node_Str",shorthandExpression));
  }
  if (CssConstants.INITIAL.equals(shorthandExpression) || CssConstants.INHERIT.equals(shorthandExpression)) {
    return Arrays.asList(new CssDeclaration(CssConstants.FONT_STYLE,shorthandExpression),new CssDeclaration(CssConstants.FONT_VARIANT,shorthandExpression),new CssDeclaration(CssConstants.FONT_WEIGHT,shorthandExpression),new CssDeclaration(CssConstants.FONT_SIZE,shorthandExpression),new CssDeclaration(CssConstants.LINE_HEIGHT,shorthandExpression),new CssDeclaration(CssConstants.FONT_FAMILY,shorthandExpression));
  }
  String fontStyleValue=null;
  String fontVariantValue=null;
  String fontWeightValue=null;
  String fontSizeValue=null;
  String lineHeightValue=null;
  String fontFamilyValue=null;
  List<String> properties=getFontProperties(shorthandExpression.replaceAll("String_Node_Str","String_Node_Str"));
  for (  String value : properties) {
    int slashSymbolIndex=value.indexOf('/');
    if (CssConstants.ITALIC.equals(value) || CssConstants.OBLIQUE.equals(value)) {
      fontStyleValue=value;
    }
 else     if (CssConstants.SMALL_CAPS.equals(value)) {
      fontVariantValue=value;
    }
 else     if (FONT_WEIGHT_NOT_DEFAULT_VALUES.contains(value)) {
      fontWeightValue=value;
    }
 else     if (slashSymbolIndex > 0) {
      fontSizeValue=value.substring(0,slashSymbolIndex);
      lineHeightValue=value.substring(slashSymbolIndex + 1,value.length());
    }
 else     if (FONT_SIZE_VALUES.contains(value) || CssUtils.isMetricValue(value) || CssUtils.isNumericValue(value)|| CssUtils.isRelativeValue(value)) {
      fontSizeValue=value;
    }
 else {
      fontFamilyValue=value;
    }
  }
  List<CssDeclaration> cssDeclarations=Arrays.asList(new CssDeclaration(CssConstants.FONT_STYLE,fontStyleValue == null ? CssConstants.INITIAL : fontStyleValue),new CssDeclaration(CssConstants.FONT_VARIANT,fontVariantValue == null ? CssConstants.INITIAL : fontVariantValue),new CssDeclaration(CssConstants.FONT_WEIGHT,fontWeightValue == null ? CssConstants.INITIAL : fontWeightValue),new CssDeclaration(CssConstants.FONT_SIZE,fontSizeValue == null ? CssConstants.INITIAL : fontSizeValue),new CssDeclaration(CssConstants.LINE_HEIGHT,lineHeightValue == null ? CssConstants.INITIAL : lineHeightValue),new CssDeclaration(CssConstants.FONT_FAMILY,fontFamilyValue == null ? CssConstants.INITIAL : fontFamilyValue));
  return cssDeclarations;
}