int amountEnd = amountData.indexOf("&", amountStart);
// FIX: Fallback falls L_AMT der letzte Parameter ist
if (amountEnd == -1) { amountEnd = amountData.length(); }
int nettoEnd = dataMessage.indexOf("&", nettoStart);
// FIX: Fallback falls L_NETAMT der letzte Parameter im String ist und kein & folgt
if (nettoEnd == -1) { nettoEnd = dataMessage.length(); }
--> hier gab es wohl eine Zeichenkette, die wie eine URL codiert war, also Variable=Wert und ein "&" zur Verkettung mehrerer Variablen. Stand die Variable am Ende, so gab es kein weiteres "&" zur nächsten Variablen, so dass der vorherige indexOf-Befehl -1 zurückgibt und folgende Substring Befehle in einen Fehler laufen. Mit der Korrektur wird dann eben die Länge des Werts der Variablen zurückgegeben.
Was vielleicht noch wichtig ist... die modifizierte Datei ist im Zeichensatz 1252 gespeichert und in Zeile 637-640 ist bei einem Replace-Befehl "?" angegeben. Das Original ist in UTF-8 und hier sollen verschiedene Zeichen ersetzt werden.
In Zeile 672 und 751 weist WinMerge noch auf eine Änderung eines Leerzeichens hin - hab den ASCII-Wert nicht verglichen, beides sieht für mich wie ein Leerzeichen aus.
Danke für deinen Plugin-Mod, so konnte ich wieder Paypal-Daten abrufen