Program: 53306
Project: 53306
Buggy source:
@Override public void setValue(int index,Object value,boolean raw){
  if (index == 1) {
    setLogicalName(GXDLMSObject.toLogicalName((byte[])value));
  }
 else   if (index == 2) {
    setExecutedScriptLogicalName(GXDLMSClient.changeType((byte[])Array.get(value,0),DataType.OCTET_STRING).toString());
    setExecutedScriptSelector(((Number)Array.get(value,1)).intValue());
  }
 else   if (index == 3) {
    setType(SingleActionScheduleType.forValue(((Number)value).intValue()));
  }
 else   if (index == 4) {
    setExecutionTime(null);
    if (value != null) {
      java.util.ArrayList<GXDateTime> items=new java.util.ArrayList<GXDateTime>();
      for (      Object it : (Object[])value) {
        GXDateTime dt=(GXDateTime)GXDLMSClient.changeType((byte[])Array.get(it,0),DataType.TIME);
        GXDateTime dt2=(GXDateTime)GXDLMSClient.changeType((byte[])Array.get(it,1),DataType.DATE);
        java.util.Calendar tm=java.util.Calendar.getInstance();
        tm.setTime(dt.getValue());
        java.util.Calendar date=java.util.Calendar.getInstance();
        date.setTime(dt2.getValue());
        tm.set(java.util.Calendar.YEAR,date.get(java.util.Calendar.YEAR));
        tm.set(java.util.Calendar.MONTH,date.get(java.util.Calendar.MONTH));
        tm.set(java.util.Calendar.DAY_OF_MONTH,date.get(java.util.Calendar.DAY_OF_MONTH));
        java.util.Set<DateTimeSkips> skip=dt.getSkip();
        skip.addAll(dt2.getSkip());
        dt.setSkip(skip);
        dt.setValue(tm.getTime());
        items.add(dt);
      }
      setExecutionTime(items.toArray(new GXDateTime[items.size()]));
    }
  }
 else {
    throw new IllegalArgumentException("String_Node_Str");
  }
}

Fixed version (ground truth):
@Override public void setValue(int index,Object value,boolean raw){
  if (index == 1) {
    setLogicalName(GXDLMSObject.toLogicalName((byte[])value));
  }
 else   if (index == 2) {
    setExecutedScriptLogicalName(GXDLMSClient.changeType((byte[])Array.get(value,0),DataType.OCTET_STRING).toString());
    setExecutedScriptSelector(((Number)Array.get(value,1)).intValue());
  }
 else   if (index == 3) {
    setType(SingleActionScheduleType.forValue(((Number)value).intValue()));
  }
 else   if (index == 4) {
    setExecutionTime(null);
    if (value != null) {
      java.util.ArrayList<GXDateTime> items=new java.util.ArrayList<GXDateTime>();
      for (      Object it : (Object[])value) {
        GXDateTime dt=(GXDateTime)GXDLMSClient.changeType((byte[])Array.get(it,0),DataType.TIME);
        GXDateTime dt2=(GXDateTime)GXDLMSClient.changeType((byte[])Array.get(it,1),DataType.DATE);
        java.util.Calendar tm=Calendar.getInstance(java.util.TimeZone.getTimeZone("String_Node_Str"));
        tm.setTime(dt.getValue());
        java.util.Calendar date=java.util.Calendar.getInstance(java.util.TimeZone.getTimeZone("String_Node_Str"));
        date.setTime(dt2.getValue());
        tm.set(java.util.Calendar.YEAR,date.get(java.util.Calendar.YEAR));
        tm.set(java.util.Calendar.MONTH,date.get(java.util.Calendar.MONTH));
        tm.set(java.util.Calendar.DAY_OF_MONTH,date.get(java.util.Calendar.DAY_OF_MONTH));
        java.util.Set<DateTimeSkips> skip=dt.getSkip();
        skip.addAll(dt2.getSkip());
        dt.setSkip(skip);
        dt.setValue(tm.getTime());
        items.add(dt);
      }
      setExecutionTime(items.toArray(new GXDateTime[items.size()]));
    }
  }
 else {
    throw new IllegalArgumentException("String_Node_Str");
  }
}