Почему OGNL игнорирует синтетические и нестабильные методы? - PullRequest
0 голосов
/ 21 июля 2011

В OgnlRuntime у нас есть:

static boolean isMethodCallable(Method m)
{
    if ((isJdk15() && m.isSynthetic()) || Modifier.isVolatile(m.getModifiers()))
        return false;

    return true;
}

, которые вызываются в getDeclaredMethods () и метод пропускается, если isMethodCallable () возвращает true.Это означает, что все методы в scala-trait (начиная с scala-2.9) никогда не будут выполнены.

В чем причина пропускания volatile (и в этом смысле синтетических, генерируемых компилятором) методов?

Смежный вопрос (мной): Методы в признаке становятся изменчивыми при смешивании в конкретных классах в 2.9.0-1, но не в 2.8.1

...