Program: 11440
Project: 11440
Buggy source:
private void updateAbstractMetadata(){
  final MetadataElement absTgt=AbstractMetadata.getAbstractedMetadata(targetProduct);
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.num_output_lines,targetHeight);
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.num_samples_per_line,targetWidth);
  absTgt.setAttributeUTC(AbstractMetadata.first_line_time,new ProductData.UTC(targetFirstLineTime / Constants.secondsInDay));
  absTgt.setAttributeUTC(AbstractMetadata.last_line_time,new ProductData.UTC(targetLastLineTime / Constants.secondsInDay));
  absTgt.setAttributeDouble(AbstractMetadata.line_time_interval,targetLineTimeInterval);
  TiePointGrid latGrid=targetProduct.getTiePointGrid(OperatorUtils.TPG_LATITUDE);
  TiePointGrid lonGrid=targetProduct.getTiePointGrid(OperatorUtils.TPG_LONGITUDE);
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.first_near_lat,latGrid.getPixelFloat(0,0));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.first_near_long,lonGrid.getPixelFloat(0,0));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.first_far_lat,latGrid.getPixelFloat(targetWidth,0));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.first_far_long,lonGrid.getPixelFloat(targetWidth,0));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.last_near_lat,latGrid.getPixelFloat(0,targetHeight));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.last_near_long,lonGrid.getPixelFloat(0,targetHeight));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.last_far_lat,latGrid.getPixelFloat(targetWidth,targetHeight));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.last_far_long,lonGrid.getPixelFloat(targetWidth,targetHeight));
  absTgt.removeAttribute(absTgt.getAttribute("String_Node_Str"));
  absTgt.removeAttribute(absTgt.getAttribute("String_Node_Str"));
  absTgt.removeAttribute(absTgt.getAttribute("String_Node_Str"));
  absTgt.removeAttribute(absTgt.getAttribute("String_Node_Str"));
  absTgt.removeAttribute(absTgt.getAttribute("String_Node_Str"));
  absTgt.removeAttribute(absTgt.getAttribute("String_Node_Str"));
  absTgt.removeElement(absTgt.getElement("String_Node_Str"));
  final MetadataElement burstBoundaryTgt=new MetadataElement("String_Node_Str");
  for (int p=0; p < numOfSubSwath; p++) {
    MetadataElement absRoot=AbstractMetadata.getAbstractedMetadata(sourceProduct[p]);
    final MetadataElement burstBoundarySrc=absRoot.getElement("String_Node_Str");
    if (burstBoundarySrc != null) {
      final MetadataElement element=burstBoundarySrc.getElementAt(0);
      if (element != null) {
        burstBoundaryTgt.addElement(element.createDeepClone());
      }
    }
  }
  absTgt.addElement(burstBoundaryTgt);
  absTgt.removeElement(absTgt.getElement("String_Node_Str"));
  final MetadataElement ESDMeasurementTgt=new MetadataElement("String_Node_Str");
  for (int p=0; p < numOfSubSwath; p++) {
    MetadataElement absRoot=AbstractMetadata.getAbstractedMetadata(sourceProduct[p]);
    final MetadataElement ESDMeasurementSrc=absRoot.getElement("String_Node_Str");
    if (ESDMeasurementSrc != null) {
      final MetadataElement element=ESDMeasurementSrc.getElementAt(0);
      if (element != null) {
        ESDMeasurementTgt.addElement(element.createDeepClone());
      }
    }
  }
  absTgt.addElement(ESDMeasurementTgt);
}

Fixed version (ground truth):
private void updateAbstractMetadata(){
  final MetadataElement absTgt=AbstractMetadata.getAbstractedMetadata(targetProduct);
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.num_output_lines,targetHeight);
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.num_samples_per_line,targetWidth);
  absTgt.setAttributeUTC(AbstractMetadata.first_line_time,new ProductData.UTC(targetFirstLineTime / Constants.secondsInDay));
  absTgt.setAttributeUTC(AbstractMetadata.last_line_time,new ProductData.UTC(targetLastLineTime / Constants.secondsInDay));
  absTgt.setAttributeDouble(AbstractMetadata.line_time_interval,targetLineTimeInterval);
  absTgt.setAttributeDouble(AbstractMetadata.slant_range_to_first_pixel,targetSlantRangeTimeToFirstPixel * Constants.lightSpeed);
  TiePointGrid latGrid=targetProduct.getTiePointGrid(OperatorUtils.TPG_LATITUDE);
  TiePointGrid lonGrid=targetProduct.getTiePointGrid(OperatorUtils.TPG_LONGITUDE);
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.first_near_lat,latGrid.getPixelFloat(0,0));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.first_near_long,lonGrid.getPixelFloat(0,0));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.first_far_lat,latGrid.getPixelFloat(targetWidth,0));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.first_far_long,lonGrid.getPixelFloat(targetWidth,0));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.last_near_lat,latGrid.getPixelFloat(0,targetHeight));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.last_near_long,lonGrid.getPixelFloat(0,targetHeight));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.last_far_lat,latGrid.getPixelFloat(targetWidth,targetHeight));
  AbstractMetadata.setAttribute(absTgt,AbstractMetadata.last_far_long,lonGrid.getPixelFloat(targetWidth,targetHeight));
  absTgt.removeAttribute(absTgt.getAttribute("String_Node_Str"));
  absTgt.removeAttribute(absTgt.getAttribute("String_Node_Str"));
  absTgt.removeAttribute(absTgt.getAttribute("String_Node_Str"));
  absTgt.removeAttribute(absTgt.getAttribute("String_Node_Str"));
  absTgt.removeAttribute(absTgt.getAttribute("String_Node_Str"));
  absTgt.removeAttribute(absTgt.getAttribute("String_Node_Str"));
  absTgt.removeElement(absTgt.getElement("String_Node_Str"));
  final MetadataElement burstBoundaryTgt=new MetadataElement("String_Node_Str");
  for (int p=0; p < numOfSubSwath; p++) {
    MetadataElement absRoot=AbstractMetadata.getAbstractedMetadata(sourceProduct[p]);
    final MetadataElement burstBoundarySrc=absRoot.getElement("String_Node_Str");
    if (burstBoundarySrc != null) {
      final MetadataElement element=burstBoundarySrc.getElementAt(0);
      if (element != null) {
        burstBoundaryTgt.addElement(element.createDeepClone());
      }
    }
  }
  absTgt.addElement(burstBoundaryTgt);
  absTgt.removeElement(absTgt.getElement("String_Node_Str"));
  final MetadataElement ESDMeasurementTgt=new MetadataElement("String_Node_Str");
  for (int p=0; p < numOfSubSwath; p++) {
    MetadataElement absRoot=AbstractMetadata.getAbstractedMetadata(sourceProduct[p]);
    final MetadataElement ESDMeasurementSrc=absRoot.getElement("String_Node_Str");
    if (ESDMeasurementSrc != null) {
      final MetadataElement element=ESDMeasurementSrc.getElementAt(0);
      if (element != null) {
        ESDMeasurementTgt.addElement(element.createDeepClone());
      }
    }
  }
  absTgt.addElement(ESDMeasurementTgt);
}