apache/hadoop · error · IllegalArgumentException
invalid codePath: className={} codePath={}
Error message
invalid codePath: className={} codePath={} What it means
Error "invalid codePath: className={} codePath={}" thrown in apache/hadoop.
Source
Thrown at hadoop-tools/hadoop-streaming/src/main/java/org/apache/hadoop/streaming/StreamUtil.java:98
String codePath;
if (classUrl != null) {
boolean inJar = classUrl.getProtocol().equals("jar");
codePath = classUrl.toString();
if (codePath.startsWith("jar:")) {
codePath = codePath.substring("jar:".length());
}
if (codePath.startsWith("file:")) { // can have both
codePath = codePath.substring("file:".length());
}
if (inJar) {
// A jar spec: remove class suffix in /path/my.jar!/package/Class
int bang = codePath.lastIndexOf('!');
codePath = codePath.substring(0, bang);
} else {
// A class spec: remove the /my/package/Class.class portion
int pos = codePath.lastIndexOf(relPath);
if (pos == -1) {
throw new IllegalArgumentException("invalid codePath: className=" + className
+ " codePath=" + codePath);
}
codePath = codePath.substring(0, pos);
}
} else {
codePath = null;
}
return codePath;
}
static String qualifyHost(String url) {
try {
return qualifyHost(new URL(url)).toString();
} catch (IOException io) {
return url;
}
}
View on GitHub (pinned to 2add963021)
Solutions
- Ensure the class is packaged in the job jar and the code path (jar/classpath entry) is valid and readable.
When it happens
Trigger: StreamUtil resolves a class's code source path that is null or otherwise invalid, e.g. the class was loaded by the bootstrap classloader.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/e9974d2ac147d3a7.
Report an issue: GitHub.