I wonder if someone faced this behavior before, wheter this is "known" or 
wanted.
XWork ParametersInterceptor Code:

    protected boolean isAccepted(String paramName) {
        if (!this.acceptedParams.isEmpty()) {
            for (Pattern pattern : acceptedParams) {
                Matcher matcher = pattern.matcher(paramName);
                if (!matcher.matches()) {
                    return false;
                }
            }
        }
        return acceptedPattern.matcher(paramName).matches();
    }

Taking a param list like "id, anotherid" which are both "accepted" and 
configured in my interceptor stack.
But using the Code above, none of them will ever be accepted, because the 
pattern list is traversed and matched against the actual parameter.

first run: id matches id -> OK
second run: anotherid does not match id -> FALSE

Although the Pattern list does contain a pattern which may result in a "true" 
match, false will be returned if there are more than 2 patterns in the list 
(order doesnt matter).

My parameter is not set.
Is this indented behavior? Or something wrong here?

thx

Torsten

PS: Using struts 2.0.11.x, XWork 2.0.5

-- 
Bitte senden Sie mir keine Word- oder PowerPoint-Anhänge.
Siehe http://www.gnu.org/philosophy/no-word-attachments.de.html

Really, I'm not out to destroy Microsoft. That will just be a 
completely unintentional side effect."
        -- Linus Torvalds

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to