Summary: | JULI ClassLoaderLogManager doesn't properly handle ${} when replacing property values | ||
---|---|---|---|
Product: | Tomcat 6 | Reporter: | Richard Lavoie <lavoie.richard> |
Component: | Catalina | Assignee: | Tomcat Developers Mailing List <dev> |
Status: | RESOLVED FIXED | ||
Severity: | minor | ||
Priority: | P2 | ||
Version: | 6.0.32 | ||
Target Milestone: | default | ||
Hardware: | PC | ||
OS: | All |
Description
Richard Lavoie
2011-05-23 21:54:38 UTC
I see. Please be more specific next time: you are referring to the source code of method replace(String) of class org.apache.juli.ClassLoaderLogManager.
I acknowledge the issue with indexOf.
> There is not even a way to "escape" the ${} chars if we'd like to output them.
You can define a system property that expands to ${} or to ${ or whatever. As you might see from the code, the replacement text is used "as is" and is not searched further for replacement characters.
Fixed in 7.0.x and will be included in 7.0.15 onwards. Proposed for 6.0.x I reimplemented the property substitution code in r1133857 with several improvements. See commit message and test cases. It will be in 7.0.16. Proposed for 6.0.x |