Program: 67154
Project: 67154
Buggy source:
@SuppressWarnings("String_Node_Str") private void handleCell(CrosstabCellHandle cell,String emptyVlaue) throws BirtException {
  if (cell == null) {
    return;
  }
  if (handler != null) {
    ICrosstabCell cellItem=new CrosstabCellImpl(cell);
    handler.callFunction(CrosstabScriptHandler.ON_PREPARE_CELL,cellItem,context);
  }
  for (Iterator itr=cell.getContents().iterator(); itr.hasNext(); ) {
    ReportElementHandle handle=(ReportElementHandle)itr.next();
    context.prepare(handle);
    if (emptyVlaue != null && handle instanceof DataItemHandle) {
      DataItemHandle dataHandle=(DataItemHandle)handle;
      PropertyHandle mapHandle=dataHandle.getPropertyHandle(StyleHandle.MAP_RULES_PROP);
      ArrayList<MapRule> rules=mapHandle.getListValue();
      if (rules != null) {
        List<MapRule> removeList=new ArrayList<MapRule>();
        for (        MapRule rl : rules) {
          if (rl.getTestExpression() != null && rl.getTestExpression().startsWith(AUTO_EMPTY_VALUE_EXPR_PREFIX)) {
            removeList.add(rl);
          }
        }
        if (removeList.size() > 0) {
          mapHandle.removeItems(removeList);
        }
      }
      MapRule rule=StructureFactory.createMapRule();
      rule.setTestExpression(AUTO_EMPTY_VALUE_EXPR_PREFIX + ExpressionUtil.createJSDataExpression(dataHandle.getResultSetColumn()));
      rule.setOperator(DesignChoiceConstants.MAP_OPERATOR_NULL);
      rule.setDisplay(emptyVlaue);
      try {
        mapHandle.addItem(rule);
      }
 catch (      SemanticException e) {
        logger.log(Level.SEVERE,Messages.getString("String_Node_Str"),e);
      }
    }
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") private void handleCell(CrosstabCellHandle cell,String emptyVlaue) throws BirtException {
  if (cell == null) {
    return;
  }
  if (handler != null) {
    ICrosstabCell cellItem=new CrosstabCellImpl(cell);
    handler.callFunction(CrosstabScriptHandler.ON_PREPARE_CELL,cellItem,context);
  }
  for (Iterator itr=cell.getContents().iterator(); itr.hasNext(); ) {
    ReportElementHandle handle=(ReportElementHandle)itr.next();
    context.prepare(handle);
    if (handle instanceof DataItemHandle) {
      DataItemHandle dataHandle=(DataItemHandle)handle;
      PropertyHandle mapHandle=dataHandle.getPropertyHandle(StyleHandle.MAP_RULES_PROP);
      ArrayList<MapRule> rules=mapHandle.getListValue();
      if (rules != null) {
        List<MapRule> removeList=new ArrayList<MapRule>();
        for (        MapRule rl : rules) {
          if (rl.getTestExpression() != null && rl.getTestExpression().startsWith(AUTO_EMPTY_VALUE_EXPR_PREFIX)) {
            removeList.add(rl);
          }
        }
        if (removeList.size() > 0) {
          mapHandle.removeItems(removeList);
        }
      }
      if (emptyVlaue != null) {
        MapRule rule=StructureFactory.createMapRule();
        rule.setTestExpression(AUTO_EMPTY_VALUE_EXPR_PREFIX + ExpressionUtil.createJSDataExpression(dataHandle.getResultSetColumn()));
        rule.setOperator(DesignChoiceConstants.MAP_OPERATOR_NULL);
        rule.setDisplay(emptyVlaue);
        try {
          mapHandle.addItem(rule);
        }
 catch (        SemanticException e) {
          logger.log(Level.SEVERE,Messages.getString("String_Node_Str"),e);
        }
      }
    }
  }
}