Activiti/Activiti · error · ActivitiIllegalArgumentException
tableName is null
Error message
tableName is null
What it means
Thrown by GetTableMetaDataCmd.execute when tableName is null. Activiti rejects the missing argument with ActivitiIllegalArgumentException before delegating to TableDataManager.getTableMetaData, which needs the table name for a metadata query.
Solutions
- Null/blank-check tableName before the call.
- Get valid names from managementService.getTables() or managementService.getTableName(EntityClass.class).
- Normalize case: table names are typically uppercase, e.g. 'ACT_RU_TASK'.
Example fix
// before
TableMetaData md = managementService.getTableMetaData(tableName);
// after
if (tableName == null || tableName.isBlank()) throw new IllegalArgumentException("tableName is required");
TableMetaData md = managementService.getTableMetaData(tableName.toUpperCase()); Defensive patterns
Strategy: validation
Validate before calling
if (tableName == null || tableName.isBlank()) throw new IllegalArgumentException("tableName is required"); Type guard
boolean isValidTableName(String name) {
return name != null && !name.isBlank();
} Prevention
- Source table names from managementService.getTables().
- Use uppercase Activiti table names (ACT_RU_TASK etc.).
- Null-check any dynamically computed table name.
When it happens
Trigger: Calling managementService.getTableMetaData(null); often the name was meant to come from managementService.getTableName(entityClass) or a table-name collection that produced null.
Common situations: Passing the wrong variable; dynamic table-name building that failed; incorrect iteration of managementService.getTables().
Related errors
- entityClass is null
- Candidate group list is null
- Cannot start process instance by message: message name is…
- dataObjectName is null
- Deployment id is null
AI-assisted analysis of Activiti/Activiti@56435b1a97 (2026-09-09).
Data as JSON: /api/errors/2c26105bd65525d6.
Report an issue: GitHub.
Appendix: source
Thrown at activiti-core/activiti-engine/src/main/java/org/activiti/engine/impl/cmd/GetTableMetaDataCmd.java:38
import org.activiti.engine.impl.interceptor.Command;
import org.activiti.engine.impl.interceptor.CommandContext;
import org.activiti.engine.management.TableMetaData;
/**
*/
public class GetTableMetaDataCmd implements Command<TableMetaData>, Serializable {
private static final long serialVersionUID = 1L;
protected String tableName;
public GetTableMetaDataCmd(String tableName) {
this.tableName = tableName;
}
public TableMetaData execute(CommandContext commandContext) {
if (tableName == null) {
throw new ActivitiIllegalArgumentException("tableName is null");
}
return commandContext.getTableDataManager().getTableMetaData(tableName);
}
}
View on GitHub (pinned to 56435b1a97)