The appropriate use of semi colons after a handler is not clear. The docs say:
This implies that a semicolon should always be valid after a handler. The semi colon is certainly optional as shown after the first handler here:
And a semi colon is allowed when the first handler is encased in curly braces:
However, this example throws a parsing error:
With the error:
I think that last example should be valid since the next text after the first handler is "else". I've been caught off guard a few times when I put semi colons after handlers, but then I have an example like above and receive a parsing error. It doesn't seem necessary to need to use the curly braces unless I have more than one handler I want to group together.
The predicate DSL is clearly borrowing from most scripting languages like Java or JS where pseudo code like this would be valid:
In that pseudo code, the first semi colon doesn't terminate the entire if statement, so it doesn't seem correct that the Undertow Predicate language treats it that way.