Program: 89472
Project: 89472
Buggy source:
private void transformiereDaten(List<GenericObjectHashMap> tablist) throws RemoteException {
  tablist.clear();
  int fehler=0;
  for (  GenericObjectHashMap source : quellDaten) {
    if (!source.getAttribute("String_Node_Str").toString().isEmpty()) {
      continue;
    }
    GenericObjectHashMap g=new GenericObjectHashMap();
    for (    Entry<FeldDefinitionen,AbstractInput> entry : controls.entrySet()) {
      boolean required=entry.getValue().isMandatory();
      String sourceattr=(String)entry.getValue().getValue();
      String destattr=entry.getKey().getAttr();
      if (sourceattr.isEmpty()) {
        if (required) {
          g.setAttribute(destattr,"String_Node_Str");
          fehler++;
        }
 else {
          g.setAttribute(destattr,"String_Node_Str");
        }
        continue;
      }
      Object sourcedata=source.getAttribute(sourceattr);
      Class<?> feldtype=entry.getKey().getFeldtype();
      try {
        if (feldtype.equals(BigDecimal.class)) {
          FeldConverter fc=(FeldConverter)zahlenFormat.getValue();
          sourcedata=fc.convert(sourcedata.toString());
        }
 else         if (feldtype.equals(BigDecimalWithCurrency.class)) {
          FeldConverter fc=(FeldConverter)zahlenFormat.getValue();
          String data=sourcedata.toString().trim();
          int spaceCount=StringUtils.countMatches(data,"String_Node_Str");
          if (spaceCount == 0) {
            sourcedata=fc.convert(data);
          }
 else           if (spaceCount == 1) {
            String[] splitted=data.split("String_Node_Str");
            BigDecimalWithCurrency bdwc=new BigDecimalWithCurrency((BigDecimal)fc.convert(splitted[0]),splitted[1]);
            sourcedata=bdwc;
          }
 else {
            sourcedata=fc.convert(data);
          }
        }
 else         if (feldtype.equals(Date.class)) {
          SimpleDateFormat dp=getDateParser(datumsFormat.getValue().toString());
          sourcedata=dp.parse(sourcedata.toString());
        }
 else         if (feldtype.equals(DepotAktion.class)) {
          sourcedata=DepotAktion.getByString(sourcedata.toString());
        }
 else         if (feldtype.equals(Currency.class)) {
          sourcedata=Currency.getInstance(sourcedata.toString());
        }
 else         if (feldtype.equals(String.class)) {
        }
 else {
          sourcedata="String_Node_Str";
        }
      }
 catch (      ParseException|IllegalArgumentException e) {
        fehler++;
        sourcedata="String_Node_Str" + sourcedata.toString();
      }
      g.setAttribute(destattr,sourcedata);
    }
    g.setAttribute("String_Node_Str",waehrung.getValue().toString());
    tablist.add(g);
  }
  if (fehler == 0) {
    error.setValue("String_Node_Str");
  }
 else {
    error.setValue("String_Node_Str" + fehler);
  }
  weiterbutton.setEnabled(fehler == 0);
}

Fixed version (ground truth):
private void transformiereDaten(List<GenericObjectHashMap> tablist) throws RemoteException {
  tablist.clear();
  int fehler=0;
  for (  GenericObjectHashMap source : quellDaten) {
    if (!source.getAttribute("String_Node_Str").toString().isEmpty()) {
      continue;
    }
    GenericObjectHashMap g=new GenericObjectHashMap();
    for (    Entry<FeldDefinitionen,AbstractInput> entry : controls.entrySet()) {
      boolean required=entry.getValue().isMandatory();
      String sourceattr=(String)entry.getValue().getValue();
      String destattr=entry.getKey().getAttr();
      if (sourceattr.isEmpty()) {
        if (required) {
          g.setAttribute(destattr,"String_Node_Str");
          fehler++;
        }
 else {
          g.setAttribute(destattr,"String_Node_Str");
        }
        continue;
      }
      Object sourcedata=source.getAttribute(sourceattr);
      Class<?> feldtype=entry.getKey().getFeldtype();
      try {
        if (feldtype.equals(BigDecimal.class)) {
          FeldConverter fc=(FeldConverter)zahlenFormat.getValue();
          sourcedata=fc.convert(sourcedata.toString());
        }
 else         if (feldtype.equals(BigDecimalWithCurrency.class)) {
          FeldConverter fc=(FeldConverter)zahlenFormat.getValue();
          String data=sourcedata.toString().trim();
          int spaceCount=StringUtils.countMatches(data,"String_Node_Str");
          if (spaceCount == 0) {
            sourcedata=fc.convert(data);
          }
 else           if (spaceCount == 1) {
            String[] splitted=data.split("String_Node_Str");
            BigDecimalWithCurrency bdwc=new BigDecimalWithCurrency((BigDecimal)fc.convert(splitted[0]),splitted[1]);
            sourcedata=bdwc;
          }
 else {
            sourcedata=fc.convert(data);
          }
        }
 else         if (feldtype.equals(Date.class)) {
          SimpleDateFormat dp=getDateParser(datumsFormat.getValue().toString());
          sourcedata=dp.parse(sourcedata.toString());
        }
 else         if (feldtype.equals(DepotAktion.class)) {
          DepotAktion da=DepotAktion.getByString(sourcedata.toString());
          if (da == null) {
            throw new IllegalArgumentException();
          }
          sourcedata=da;
        }
 else         if (feldtype.equals(Currency.class)) {
          sourcedata=Currency.getInstance(sourcedata.toString());
        }
 else         if (feldtype.equals(String.class)) {
        }
 else {
          sourcedata="String_Node_Str";
        }
      }
 catch (      ParseException|IllegalArgumentException e) {
        fehler++;
        sourcedata="String_Node_Str" + sourcedata.toString();
      }
      g.setAttribute(destattr,sourcedata);
    }
    g.setAttribute("String_Node_Str",waehrung.getValue().toString());
    tablist.add(g);
  }
  if (fehler == 0) {
    error.setValue("String_Node_Str");
  }
 else {
    error.setValue("String_Node_Str" + fehler);
  }
  weiterbutton.setEnabled(fehler == 0);
}