{"record":{"id":"10e43e0b76be306e","repo":"apache/hadoop","slug":"expected-nodetype-10e43e","errorCode":null,"errorMessage":"Expected nodetype","messagePattern":"Expected nodetype","errorType":"exception","errorClass":"IOException","httpStatus":null,"severity":"error","filePath":"hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/join/Parser.java","lineNumber":97,"sourceCode":"\n  /**\n   * Tagged-union type for tokens from the join expression.\n   * @see Parser.TType\n   */\n  @InterfaceAudience.Public\n  @InterfaceStability.Evolving\n  public static class Token {\n\n    private TType type;\n\n    Token(TType type) {\n      this.type = type;\n    }\n\n    public TType getType() { return type; }\n    \n    public Node getNode() throws IOException {\n      throw new IOException(\"Expected nodetype\");\n    }\n    \n    public double getNum() throws IOException {\n      throw new IOException(\"Expected numtype\");\n    }\n    \n    public String getStr() throws IOException {\n      throw new IOException(\"Expected strtype\");\n    }\n  }\n\n  @InterfaceAudience.Public\n  @InterfaceStability.Evolving\n  public static class NumToken extends Token {\n    private double num;\n    public NumToken(double num) {\n      super(TType.NUM);\n      this.num = num;","sourceCodeStart":79,"sourceCodeEnd":115,"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/join/Parser.java#L79-L115","documentation":"Error \"Expected nodetype\" thrown in apache/hadoop.","triggerScenarios":"Thrown by Parser.Ttype/Node parsing when a join expression token is expected to be a node (stream) type but a different token type was found. Check the join expression syntax: identifiers for input streams must be declared correctly.","commonSituations":"See trigger scenarios.","solutions":["Fix the join expression syntax: an identifier naming a node/stream type is required at this position.","Check the expression against the grammar: <expr> ::= <op>(<input>[,<input>]*) with valid InputFormat class names."],"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-23T01:17:44.959Z"}