https://issues.apache.org/bugzilla/show_bug.cgi?id=55176
Bug ID: 55176 Summary: SSI regular expressions parsing fails Product: Tomcat 7 Version: 7.0.39 Hardware: All OS: Linux Status: NEW Severity: normal Priority: P2 Component: Catalina Assignee: dev@tomcat.apache.org Reporter: david.reit...@gmail.com Created attachment 30513 --> https://issues.apache.org/bugzilla/attachment.cgi?id=30513&action=edit test cases 1, 2 and 3 Regular Expressions in SSI fail to parse. This uses SSI in 7.0.39 using SSIFilter. The file is parsed, in principle, but whenever an IF expression with a certain regular expression is encountered, Tomcat seems to either show an exception (test case 2) stop processing the file and will not return any contents after that (for test case 3). Certain very simple regular expressions such as /a/ do not show an error (test case 1). Example: My request is: http://...:8080/tomcat7_ssi_bug/foo.html?year=234234 The relevant portion of the file is (test case 3): <!--#if expr="${QUERY_STRING} = /year=(.*)/" --> I have tried a number of variants, including $QUERY_STRING instead of ${...}. I find no error about this in the logs. I tried simpler regular expressions. The following <!--#if expr="${QUERY_STRING} = /year=/" --> Leads to the error below: java.lang.ClassCastException: org.apache.catalina.ssi.ExpressionParseTree$EqualNode cannot be cast to org.apache.catalina.ssi.ExpressionParseTree$StringNode org.apache.catalina.ssi.ExpressionParseTree$CompareNode.compareBranches(ExpressionParseTree.java:353) org.apache.catalina.ssi.ExpressionParseTree$EqualNode.evaluate(ExpressionParseTree.java:381) org.apache.catalina.ssi.ExpressionParseTree.evaluateTree(ExpressionParseTree.java:67) org.apache.catalina.ssi.SSIConditional.evaluateArguments(SSIConditional.java:124) org.apache.catalina.ssi.SSIConditional.process(SSIConditional.java:50) org.apache.catalina.ssi.SSIProcessor.process(SSIProcessor.java:160) org.apache.catalina.ssi.SSIFilter.doFilter(SSIFilter.java:144) This occurs whenever the regular expression does not contain any parenthesis. Attached war file contains foo.html, showing test cases 1 and 2, and bar.html, showing test case 1 and 3. By the way, these regular expressions work as intended in Apache (httpd) 2. See also feature request #53387. (The back reference in this example is not what causes the exception.) -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org