Program: 175135
Project: 175135
Buggy source:
protected AttributesGeometry setNewAttributeValues(AttributesGeometry attr,HashMap<String,Object> map){
  Collection<String> keys=map.keySet();
  SimpleDateFormat df=new SimpleDateFormat("String_Node_Str");
  for (int i=0; i < keys.size(); i++) {
    String att=attr.getSchema()[i];
    Class<?> type=attr.getType(attr.getSchema()[i]);
    String val=((String)map.get(att));
    if (val != null && !"String_Node_Str".equals(val)) {
      try {
        if (type == Double.class) {
          attr.set(att,Double.parseDouble(val));
        }
 else         if (type == String.class) {
          attr.set(att,val);
        }
 else         if (type == Date.class) {
          attr.set(att,df.parse(val));
        }
 else         if (type == Timestamp.class) {
          Date d=df.parse(val);
          attr.set(att,new Timestamp(d.getTime()));
        }
 else         if (type == Integer.class) {
          attr.set(att,Integer.parseInt(val));
        }
 else         if (type == Boolean.class) {
          attr.set(att,Boolean.parseBoolean(val));
        }
 else         if (type.isArray()) {
          int bb=Integer.parseInt(band);
          if (type == int[].class) {
            int[] a=new int[4];
            int id=PlatformConfiguration.getConfigurationInstance().getIdPolarization(SumoPlatform.getApplication().getCurrentImageReader().getBandName(bb));
            a[id]=Integer.parseInt(val);
            attr.set(att,a);
          }
          if (type == double[].class) {
            double[] a=new double[4];
            int id=PlatformConfiguration.getConfigurationInstance().getIdPolarization(SumoPlatform.getApplication().getCurrentImageReader().getBandName(bb));
            a[id]=Double.parseDouble(val);
            attr.set(att,a);
          }
        }
 else {
          attr.set(att,val);
        }
      }
 catch (      Exception e) {
        logger.error("String_Node_Str" + att,e.getMessage());
      }
    }
  }
  return attr;
}

Fixed version (ground truth):
protected AttributesGeometry setNewAttributeValues(AttributesGeometry attr,HashMap<String,Object> map){
  Collection<String> keys=map.keySet();
  SimpleDateFormat df=new SimpleDateFormat("String_Node_Str");
  for (int i=0; i < keys.size(); i++) {
    String att=attr.getSchema()[i];
    Class<?> type=attr.getType(attr.getSchema()[i]);
    String val=((String)map.get(att));
    if (val != null && !"String_Node_Str".equals(val)) {
      try {
        if (type == Double.class) {
          attr.set(att,Double.parseDouble(val));
        }
 else         if (type == String.class) {
          attr.set(att,val);
        }
 else         if (type == Date.class) {
          attr.set(att,df.parse(val));
        }
 else         if (type == Timestamp.class) {
          Date d=df.parse(val);
          attr.set(att,new Timestamp(d.getTime()));
        }
 else         if (type == Integer.class) {
          attr.set(att,Integer.parseInt(val));
        }
 else         if (type == Boolean.class) {
          attr.set(att,Boolean.parseBoolean(val));
        }
 else         if (type.isArray()) {
          int bb=Integer.parseInt(band);
          if (type == int[].class || type == Integer[].class) {
            int[] a=new int[4];
            int id=PlatformConfiguration.getConfigurationInstance().getIdPolarization(SumoPlatform.getApplication().getCurrentImageReader().getBandName(bb));
            a[id]=Integer.parseInt(val);
            attr.set(att,a);
          }
          if (type == double[].class || type == Double[].class) {
            double[] a=new double[4];
            int id=PlatformConfiguration.getConfigurationInstance().getIdPolarization(SumoPlatform.getApplication().getCurrentImageReader().getBandName(bb));
            a[id]=Double.parseDouble(val);
            attr.set(att,a);
          }
        }
 else {
          attr.set(att,val);
        }
      }
 catch (      Exception e) {
        logger.error("String_Node_Str" + att,e.getMessage());
      }
    }
  }
  return attr;
}