takidoso
Erfahrenes Mitglied
Hallo und Halli,
also irgendwie ist bei mi rder wurm drinn aber eigetnlich sollte das nicht so schwer sein...
Ich möchte mit einem gewöhnlichen String.replaceAll() Eine Zeichenkette mit etwas ersetzten. nun bekomme ich aber merkwürdigerweise einen java.lang.StringIndexOutOfBoundsException
was ich überhaupt nicht begreifen kann.
folgende Daten sind mittels Trace nachweislich vorhanden:
resolvedCommand=cmd /c copy <inputDir><inputFile> <outputDir><cp_output>
token=<inputDir>
inputDir=d:\workspace\File-Demon\tmp\input\
outputDir=d:\workspace\File-Demon\tmp\output\
inputfile=d:\workspace\File-Demon\tmp\output\
und das Statement in dem es kracht ist folgendes
Dabei soll es hier lediglich <inputDir> ersetzen mit Inhalt von variable inputDir.
in der Beschreibung finde ich in einer angewandten Routine folgenden Hinweis
allderdings verstehe ich diesen Hinweis nicht vielleicht kann mir jemand da weiterhelfen was wirklich damit gemeint ist.
der Stacktrace ist folgender
Ich kapiere wirklich nicht wie es hier zum Index 34 kommt. Irgendwas verstehe ich wohl von den einzubrngenden Parametern nicht
für Hinweis sehr dankbar
Takidoso
also irgendwie ist bei mi rder wurm drinn aber eigetnlich sollte das nicht so schwer sein...
Ich möchte mit einem gewöhnlichen String.replaceAll() Eine Zeichenkette mit etwas ersetzten. nun bekomme ich aber merkwürdigerweise einen java.lang.StringIndexOutOfBoundsException
was ich überhaupt nicht begreifen kann.
folgende Daten sind mittels Trace nachweislich vorhanden:
resolvedCommand=cmd /c copy <inputDir><inputFile> <outputDir><cp_output>
token=<inputDir>
inputDir=d:\workspace\File-Demon\tmp\input\
outputDir=d:\workspace\File-Demon\tmp\output\
inputfile=d:\workspace\File-Demon\tmp\output\
und das Statement in dem es kracht ist folgendes
Code:
resolvedCommand = resolvedCommand.replaceAll(token, inputDir);
Dabei soll es hier lediglich <inputDir> ersetzen mit Inhalt von variable inputDir.
in der Beschreibung finde ich in einer angewandten Routine folgenden Hinweis
Code:
* @throws IndexOutOfBoundsException
* If the replacement string refers to a capturing group
* that does not exist in the pattern
*/
public Matcher appendReplacement(StringBuffer sb, String replacement) {
allderdings verstehe ich diesen Hinweis nicht vielleicht kann mir jemand da weiterhelfen was wirklich damit gemeint ist.
der Stacktrace ist folgender
Code:
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 34
at java.lang.String.charAt(String.java:558)
at java.util.regex.Matcher.appendReplacement(Matcher.java:696)
at java.util.regex.Matcher.replaceAll(Matcher.java:806)
at java.lang.String.replaceAll(String.java:2000)
at de.equens.filedemon.FileProcessor.generateApplCall(FileProcessor.java:352)
at de.equens.filedemon.FileProcessor.doOneDirTurn(FileProcessor.java:178)
at de.equens.filedemon.FileProcessor.run(FileProcessor.java:105)
... 1 more
für Hinweis sehr dankbar
Takidoso