{"record":{"id":"f81aed724b93aa6e","repo":"apache/druid","slug":"unsupportedoperationexception-f81aed","errorCode":null,"errorMessage":"UnsupportedOperationException","messagePattern":"UnsupportedOperationException","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"extensions-core/kinesis-indexing-service/src/main/java/org/apache/druid/data/input/kinesis/KinesisInputReader.java","lineNumber":248,"sourceCode":"            .map(\n                field -> new Entry<String, Object>()\n                {\n                  @Override\n                  public String getKey()\n                  {\n                    return field;\n                  }\n\n                  @Override\n                  public Object getValue()\n                  {\n                    return get(field);\n                  }\n\n                  @Override\n                  public Object setValue(final Object value)\n                  {\n                    throw new UnsupportedOperationException();\n                  }\n                }\n            )\n            .collect(Collectors.toCollection(LinkedHashSet::new));\n      }\n    };\n  }\n}\n","sourceCodeStart":230,"sourceCodeEnd":257,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/extensions-core/kinesis-indexing-service/src/main/java/org/apache/druid/data/input/kinesis/KinesisInputReader.java#L230-L257","documentation":"Immutable-entry guard in KinesisInputReader's field-to-value map view: the returned Entry objects are read-only projections over parsed Kinesis record fields, so any code attempting setValue() on them (e.g. a parser or flattener mutating the row) is rejected, since records must not be modified in place.","triggerScenarios":"Thrown at extensions-core/kinesis-indexing-service/src/main/java/org/apache/druid/data/input/kinesis/KinesisInputReader.java:248 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Do not mutate entries obtained from the Kinesis input reader's field map; copy the map before modifying.","If mutation is needed, build a new Map from the entries instead of calling setValue."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9b90983fd291f26935af934383ce360473179e4d","analyzedAt":"2026-09-07T13:32:30.957Z","contentChangedAt":"2026-09-07T13:32:30.957Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}