redis/jedis · error · InstantiationError
Must not instantiate this class
Error message
Must not instantiate this class
What it means
JsonBuilderFactory is a utility class whose private constructor unconditionally throws InstantiationError to prevent instantiation. It is meant to be used statically only; new JsonBuilderFactory() always fails.
Solutions
- Use JsonBuilderFactory's static methods directly instead of creating an instance
- Remove instantiation/DI registration of this class from your code
- Access builders through the public static fields/methods
Example fix
// before JsonBuilderFactory factory = new JsonBuilderFactory(); // after var builder = JsonBuilderFactory.someStaticBuilderMethod();
Defensive patterns
Strategy: type-guard
Validate before calling
// no pre-call check possible; never instantiate
Type guard
// JsonBuilderFactory is final utility; use static access only
Try / catch
// Do not catch InstantiationError; fix the call site to use static methods
Prevention
- Use static methods/fields of JsonBuilderFactory only
- Do not register utility classes in DI containers
- Exclude *Factory utility classes from reflective instantiation
When it happens
Trigger: Writing new JsonBuilderFactory() or reflection-based instantiation (Constructor.newInstance) of JsonBuilderFactory.
Common situations: Developer habit of instantiating utility classes; code generators or DI frameworks attempting to construct all classes.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- Must not instantiate this class
- Must not instantiate this class
- Must not instantiate this class
- Must not instantiate this class
- Must not instantiate this class
AI-assisted analysis of redis/jedis@6dac31d4c2 (2026-09-08).
Data as JSON: /api/errors/8316188e5b2d3368.
Report an issue: GitHub.
Appendix: source
Thrown at src/main/java/redis/clients/jedis/json/JsonBuilderFactory.java:179
if (data == null) return null;
if (data instanceof List) return JSON_NUMBER_LIST.build(data);
return JSON_ARRAY.build(data);
}
};
public static final Builder<List<JSONArray>> JSON_ARRAY_LIST = new Builder<List<JSONArray>>() {
@Override
public List<JSONArray> build(Object data) {
if (data == null) {
return null;
}
List<Object> list = (List<Object>) data;
return list.stream().map(o -> JSON_ARRAY.build(o)).collect(Collectors.toList());
}
};
private JsonBuilderFactory() {
throw new InstantiationError("Must not instantiate this class");
}
}
View on GitHub (pinned to 6dac31d4c2)