apache/dubbo · error · IllegalArgumentException
${message}
Error message
${message} What it means
Thrown by the private guard JavaBeanDescriptor.notNull(). The descriptor's property map is keyed by non-null names, so setProperty, getProperty and containsProperty refuse a null key with IllegalArgumentException. The message comes from the call site (e.g. "Property name is null").
Source
Thrown at dubbo-common/src/main/java/org/apache/dubbo/common/beanutil/JavaBeanDescriptor.java:194
return properties.containsKey(propertyName);
}
@Override
public Iterator<Map.Entry<Object, Object>> iterator() {
return properties.entrySet().iterator();
}
public int propertySize() {
return properties.size();
}
private boolean isValidType(int type) {
return TYPE_MIN <= type && type <= TYPE_MAX;
}
private void notNull(Object obj, String message) {
if (obj == null) {
throw new IllegalArgumentException(message);
}
}
private void notEmpty(String string, String message) {
if (isEmpty(string)) {
throw new IllegalArgumentException(message);
}
}
private boolean isEmpty(String string) {
return string == null || "".equals(string.trim());
}
}
View on GitHub (pinned to 3a3043227f)
Solutions
- Make sure the property name argument is non-null before calling setProperty/getProperty/containsProperty.
- When building a descriptor from a Map, filter or skip null keys before invoking setProperty.
- Search the stack trace for the setProperty/getProperty/containsProperty caller to find which code path supplied null.
Example fix
// before
descriptor.setProperty(mapKey, value); // mapKey may be null
// after
if (mapKey != null) {
descriptor.setProperty(mapKey, value);
} Defensive patterns
Strategy: validation
Validate before calling
if (propertyName == null) {
throw new IllegalArgumentException("propertyName must not be null");
}
descriptor.setProperty(propertyName, value); Try / catch
try {
descriptor.setProperty(name, value);
} catch (IllegalArgumentException e) {
// name was null; log and skip
} Prevention
- Never pass a possibly-null key to setProperty/getProperty/containsProperty.
- When iterating a Map into a descriptor, skip entries whose key is null.
When it happens
Trigger: Calling descriptor.setProperty(null, value), descriptor.getProperty(null), or descriptor.containsProperty(null) on a JavaBeanDescriptor instance.
Common situations: Deserializing a Map that contains a null key into a JavaBeanDescriptor; programmatic descriptor construction where the key variable was never assigned; a Map.put(null,...) being replayed through setProperty during serialization.
Related errors
- type [ ${type} ] is unsupported
- Unsupported type ${className}:${type}
- Invalid configurator rule, please specify at least one param
- service field in configuration is null.
- Arguments' types are different
AI-assisted analysis of apache/dubbo@3a3043227f (2026-08-14).
Data as JSON: /api/errors/d17b9a5868467daf.
Report an issue: GitHub.