Having a value="" as a token value in the follwoing: <loadproperties srcFile="build.properties"> <filterchain> <replacetokens begintoken="(" endtoken=")"> <token key="${env.LOGNAME}" value=""/> </replacetokens> </filterchain> </loadproperties> Throws this exception: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.lang.String.charAt(String.java:460) at org.apache.tools.ant.filters.ReplaceTokens.read(ReplaceTokens.java:160) at org.apache.tools.ant.filters.ReplaceTokens.read(ReplaceTokens.java:196) at org.apache.tools.ant.filters.BaseFilterReader.read(BaseFilterReader.java:123) at java.io.Reader.read(Reader.java:100) at org.apache.tools.ant.util.FileUtils.readFully(FileUtils.java:793) at org.apache.tools.ant.filters.util.ChainReaderHelper.readFully(ChainReaderHelper.java:238) at org.apache.tools.ant.taskdefs.LoadProperties.execute(LoadProperties.java:139) at org.apache.tools.ant.Task.perform(Task.java:341) at org.apache.tools.ant.Target.execute(Target.java:309) at org.apache.tools.ant.Target.performTasks(Target.java:336) at org.apache.tools.ant.Project.executeTarget(Project.java:1339) at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:397) at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:143) at org.apache.tools.ant.Task.perform(Task.java:341) at org.apache.tools.ant.Target.execute(Target.java:309) at org.apache.tools.ant.Target.performTasks(Target.java:336) at org.apache.tools.ant.Project.executeTarget(Project.java:1339) at org.apache.tools.ant.Project.executeTargets(Project.java:1255) at org.apache.tools.ant.Main.runBuild(Main.java:609) at org.apache.tools.ant.Main.start(Main.java:196) at org.apache.tools.ant.Main.main(Main.java:235) any other non-zero length string will replace fine. But as you can see from the loadproperties task, I need an empty string.
fixed in nightly build 2003-04-10.
*** Bug 22007 has been marked as a duplicate of this bug. ***