{"record":{"id":"7d7f5fb2bde925ae","repo":"apache/hadoop","slug":"erasedindexes-and-outputs-mismatch-in-length","errorCode":null,"errorMessage":"erasedIndexes and outputs mismatch in length","messagePattern":"erasedIndexes and outputs mismatch in length","errorType":"exception","errorClass":"HadoopIllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/erasurecode/rawcoder/DecodingState.java","lineNumber":46,"sourceCode":"  RawErasureDecoder decoder;\n  int decodeLength;\n\n  /**\n   * Check and validate decoding parameters, throw exception accordingly. The\n   * checking assumes it's a MDS code. Other code  can override this.\n   * @param inputs input buffers to check\n   * @param erasedIndexes indexes of erased units in the inputs array\n   * @param outputs output buffers to check\n   */\n  <T> void checkParameters(T[] inputs, int[] erasedIndexes,\n                           T[] outputs) {\n    if (inputs.length != decoder.getNumParityUnits() +\n        decoder.getNumDataUnits()) {\n      throw new IllegalArgumentException(\"Invalid inputs length\");\n    }\n\n    if (erasedIndexes.length != outputs.length) {\n      throw new HadoopIllegalArgumentException(\n          \"erasedIndexes and outputs mismatch in length\");\n    }\n\n    if (erasedIndexes.length > decoder.getNumParityUnits()) {\n      throw new HadoopIllegalArgumentException(\n          \"Too many erased, not recoverable\");\n    }\n  }\n}\n","sourceCodeStart":28,"sourceCodeEnd":56,"githubUrl":"https://github.com/apache/hadoop/blob/2add9630210752f88ceb1bb74eb65e37bf41da8e/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/erasurecode/rawcoder/DecodingState.java#L28-L56","documentation":"Error \"erasedIndexes and outputs mismatch in length\" thrown in apache/hadoop.","triggerScenarios":"Thrown at hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/erasurecode/rawcoder/DecodingState.java:46 when the library encounters an invalid state.","commonSituations":"Occurs when erasedIndexes and outputs arrays have different lengths in a decode call. Provide one output buffer per erased index.","solutions":["Provide one output buffer per erased index; outputs.length must equal erasedIndexes.length."],"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"}