Activiti/Activiti · error · ELException
error.function.access
Error message
error.function.access
What it means
Raised by AstFunction.eval when the resolved function Method is not accessible to the caller — e.g. it is private/protected/package-private or its class is not accessible — so Method.invoke throws IllegalAccessException, rethrown as ELException error.function.access.
Solutions
- Make the function method public
- Call setAccessible(true) in the FunctionMapper before returning the Method
- Expose the function via a public wrapper class
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at activiti-core-common/activiti-juel-jakarta/src/main/java/org/activiti/core/el/juel/tree/impl/ast/AstFunction.java:124 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Activiti/Activiti@56435b1a97 (2026-09-09).
Data as JSON: /api/errors/d45c2ea6d26c478f.
Report an issue: GitHub.
Appendix: source
Thrown at activiti-core-common/activiti-juel-jakarta/src/main/java/org/activiti/core/el/juel/tree/impl/ast/AstFunction.java:124
} else {
for (int i = 0; i < params.length; i++) {
Object param = getParam(i).eval(bindings, context);
if (param != null || types[i].isPrimitive()) {
params[i] = bindings.convert(param, types[i]);
}
}
}
}
return method.invoke(base, params);
}
@Override
public Object eval(Bindings bindings, ELContext context) {
Method method = bindings.getFunction(index);
try {
return invoke(bindings, context, null, method);
} catch (IllegalAccessException e) {
throw new ELException(LocalMessages.get("error.function.access", name), e);
} catch (InvocationTargetException e) {
throw new ELException(LocalMessages.get("error.function.invocation", name), e.getCause());
}
}
@Override
public String toString() {
return name;
}
@Override
public void appendStructure(StringBuilder b, Bindings bindings) {
b.append(bindings != null && bindings.isFunctionBound(index) ? "<fn>" : name);
params.appendStructure(b, bindings);
}
public int getIndex() {
return index;View on GitHub (pinned to 56435b1a97)