Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.3.0, 0.4.0, 0.5.0
-
None
Description
There are seven additional places in Chukwa where regular expressions are used without first being validated as syntactically valid regular expressions. These could lead to unhelpful PatternSyntaxException strack traces instead of useful error messages. Unfortunately, I was not able to produce test conditions to highlight any of these issues.
The attached patch fixes the issues. Note that the patch adds a small RegexUtil class with helper methods to determine whether a String is a valid regular expression and to generate error messages for invalid regular expressions. I feel that these helper methods are more readable than catching the PatternSyntaxException. Furthermore, they allow simpler re-use if needed elsewhere.
I discovered these bugs using a tool named the Regex Checker (http://types.cs.washington.edu/checker-framework/current/checkers-manual.html#regex-checker). If you periodically run it on your codebase, then you will learn of other errors like this as soon as they appear. If you are interested, I can share my annotations for Chukwa, which will enable you to run the Regex Checker yourself without any additional effort.