I'm testing my upgrade to 2.11 and noticed a bug in how beanMethod
invocations are parsed. 

I'm using Spring to define my routes.

The following invocation expression: exec(*, '', 'arg3') gets parsed as
arg1: *
arg2: ""
arg3: ",arg3" (notice the comma).

I tracked down the bug to the class org.apache.camel.util.StringQuoteHelper.
The code-block
} else if (ch == separator) {
    // add as answer if we are not in a quote
    if (!singleQuoted && !doubleQuoted && sb.length() > 0) {
        String text = sb.toString();
        if (trim) {
            text = text.trim();
        }
        answer.add(text);
        sb.setLength(0);
        continue;
    }
}

Should instead be
} else if (ch == separator) {
    // add as answer if we are not in a quote
    if (!singleQuoted && !doubleQuoted) {
        if (sb.length() > 0) {
            String text = sb.toString();
            if (trim) {
                text = text.trim();
            }
            answer.add(text);
            sb.setLength(0);
        }
        continue; //always skip separator if not in quotes
    }
}



--
View this message in context: 
http://camel.465427.n5.nabble.com/Bean-Method-Invocation-regression-in-2-11-tp5735576.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to