{"record":{"id":"d278190c9a1f5dee","repo":"apache/hadoop","slug":"readobject-can-t-find-class-d27819","errorCode":null,"errorMessage":"readObject can't find class","messagePattern":"readObject can't find class","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/TaggedInputSplit.java","lineNumber":136,"sourceCode":"  @SuppressWarnings(\"unchecked\")\n  public void readFields(DataInput in) throws IOException {\n    inputSplitClass = (Class<? extends InputSplit>) readClass(in);\n    inputFormatClass = (Class<? extends InputFormat<?, ?>>) readClass(in);\n    mapperClass = (Class<? extends Mapper<?, ?, ?, ?>>) readClass(in);\n    inputSplit = (InputSplit) ReflectionUtils\n       .newInstance(inputSplitClass, conf);\n    SerializationFactory factory = new SerializationFactory(conf);\n    Deserializer deserializer = factory.getDeserializer(inputSplitClass);\n    deserializer.open((DataInputStream)in);\n    inputSplit = (InputSplit)deserializer.deserialize(inputSplit);\n  }\n\n  private Class<?> readClass(DataInput in) throws IOException {\n    String className = StringInterner.weakIntern(Text.readString(in));\n    try {\n      return conf.getClassByName(className);\n    } catch (ClassNotFoundException e) {\n      throw new RuntimeException(\"readObject can't find class\", e);\n    }\n  }\n\n  @SuppressWarnings(\"unchecked\")\n  public void write(DataOutput out) throws IOException {\n    Text.writeString(out, inputSplitClass.getName());\n    Text.writeString(out, inputFormatClass.getName());\n    Text.writeString(out, mapperClass.getName());\n    SerializationFactory factory = new SerializationFactory(conf);\n    Serializer serializer = \n          factory.getSerializer(inputSplitClass);\n    serializer.open((DataOutputStream)out);\n    serializer.serialize(inputSplit);\n  }\n\n  public Configuration getConf() {\n    return conf;\n  }","sourceCodeStart":118,"sourceCodeEnd":154,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/TaggedInputSplit.java#L118-L154","documentation":"Error \"readObject can't find class\" thrown in apache/hadoop.","triggerScenarios":"Thrown at hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/TaggedInputSplit.java:136 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the InputSplit's stored classes are on the task classpath; ship the required jars via distributed cache or libjars."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2add9630210752f88ceb1bb74eb65e37bf41da8e","analyzedAt":"2026-08-22T19:55:07.957Z","schemaVersion":2},"datasetVersion":"2026-08-22T20:17:22.307Z"}