Howdy,
I agree with satguru about answer "E". I think it's poorly-worded and
you should give yourself a point regardless of how you answer it, because of ways it can be interpreted.
To be 100% clear, it should have left out the last half of the sentence, and just say:
"E. A filter's doFilter() method must call doFilter() on the input FilterChain object."
The part that says, "... in order to ensure that all filters have a chance to execute." is the problem, because while you do not HAVE to call doFilter(), because as Roger said, you might want to stop processing, but if you DO want to ensure the other filters have a chance to execute, then you DO need to call doFilter(). So, this will be on our list of things to improve.
We think answer "A" is worded correctly, though.
Cheers,
Kathy