Program: 81496
Project: 81496
Buggy source:
private void parseCellExpression(Map beans){
  cell.setCollectionProperty(null);
  String curValue=cell.getHssfCellValue();
  int depRowNum=0;
  int j=curValue.lastIndexOf(configuration.getMetaInfoToken());
  if (j >= 0) {
    cell.setStringCellValue(cell.getHssfCellValue().substring(0,j));
    cell.setMetaInfo(cell.getHssfCellValue().substring(j + 2));
    String tail=curValue.substring(j + 2);
    int k=tail.indexOf("String_Node_Str");
    if (k >= 0) {
      try {
        depRowNum=Integer.parseInt(tail.substring(k + 1));
      }
 catch (      NumberFormatException e) {
      }
      cell.setCollectionName(tail.substring(0,k));
    }
 else {
      cell.setCollectionName(tail);
    }
    curValue=curValue.substring(0,j);
  }
 else {
    cell.setStringCellValue(cell.getHssfCellValue());
  }
  try {
    while (curValue.length() > 0) {
      int i=curValue.indexOf(configuration.getStartExpressionToken());
      if (i >= 0) {
        int k=curValue.indexOf(configuration.getEndExpressionToken(),i + 2);
        if (k >= 0) {
          String expr=curValue.substring(i + 2,k);
          if (i > 0) {
            String before=curValue.substring(0,i);
            cell.getExpressions().add(new Expression(before,configuration));
          }
          Expression expression=new Expression(expr,beans,configuration);
          if (expression.getCollectionProperty() != null) {
            if (cell.getCollectionProperty() == null) {
              cell.setCollectionName(expression.getCollectionProperty().getFullCollectionName());
              cell.setCollectionProperty(expression.getCollectionProperty());
              cell.setDependentRowNumber(depRowNum);
            }
 else {
              if (log.isInfoEnabled()) {
                log.info("String_Node_Str");
              }
            }
          }
          cell.getExpressions().add(expression);
          curValue=curValue.substring(k + 1,curValue.length());
        }
 else {
          cell.getExpressions().add(new Expression(curValue,configuration));
        }
      }
 else {
        if (curValue.length() != cell.getHssfCellValue().length()) {
          cell.getExpressions().add(new Expression(curValue,configuration));
        }
        curValue="String_Node_Str";
      }
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
    log.error("String_Node_Str",e);
  }
}

Fixed version (ground truth):
private void parseCellExpression(Map beans){
  cell.setCollectionProperty(null);
  String curValue=cell.getHssfCellValue();
  int depRowNum=0;
  int j=curValue.lastIndexOf(configuration.getMetaInfoToken());
  if (j >= 0) {
    cell.setStringCellValue(cell.getHssfCellValue().substring(0,j));
    cell.setMetaInfo(cell.getHssfCellValue().substring(j + 2));
    String tail=curValue.substring(j + 2);
    int k=tail.indexOf("String_Node_Str");
    if (k >= 0) {
      try {
        depRowNum=Integer.parseInt(tail.substring(k + 1));
      }
 catch (      NumberFormatException e) {
      }
      cell.setCollectionName(tail.substring(0,k));
    }
 else {
      cell.setCollectionName(tail);
    }
    curValue=curValue.substring(0,j);
  }
 else {
    cell.setStringCellValue(cell.getHssfCellValue());
  }
  try {
    while (curValue.length() > 0) {
      int i=curValue.indexOf(configuration.getStartExpressionToken());
      if (i >= 0) {
        int k=curValue.indexOf(configuration.getEndExpressionToken(),i + 2);
        if (k >= 0) {
          String expr=curValue.substring(i + 2,k);
          if (i > 0) {
            String before=curValue.substring(0,i);
            cell.getExpressions().add(new Expression(before,configuration));
          }
          Expression expression=new Expression(expr,beans,configuration);
          if (expression.getCollectionProperty() != null) {
            if (cell.getCollectionProperty() == null) {
              cell.setCollectionName(expression.getCollectionProperty().getFullCollectionName());
              cell.setCollectionProperty(expression.getCollectionProperty());
              cell.setDependentRowNumber(depRowNum);
            }
 else {
              if (log.isInfoEnabled()) {
                log.info("String_Node_Str");
              }
            }
          }
          cell.getExpressions().add(expression);
          curValue=curValue.substring(k + 1,curValue.length());
        }
 else {
          cell.getExpressions().add(new Expression(curValue,configuration));
          curValue="String_Node_Str";
        }
      }
 else {
        if (curValue.length() != cell.getHssfCellValue().length()) {
          cell.getExpressions().add(new Expression(curValue,configuration));
        }
        curValue="String_Node_Str";
      }
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
    log.error("String_Node_Str",e);
  }
}