Skip to content

[Bug]: Enhanced JSON Output - JSON size field not working #5580

@dave-csc

Description

@dave-csc

Apache Hop version?

2.14

Java version?

17.0.2

Operating system

Linux

What happened?

Enabling the option JSON size field causes an Exception:

2025/07/25 10:27:19 - Enhanced JSON Output.0 - ERROR: Unexpected error
2025/07/25 10:27:19 - Enhanced JSON Output.0 - ERROR: java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
2025/07/25 10:27:19 - Enhanced JSON Output.0 - 	at org.apache.hop.pipeline.transforms.jsonoutputenhanced.JsonOutput.outputRow(JsonOutput.java:389)
2025/07/25 10:27:19 - Enhanced JSON Output.0 - 	at org.apache.hop.pipeline.transforms.jsonoutputenhanced.JsonOutput.manageRowItems(JsonOutput.java:152)
2025/07/25 10:27:19 - Enhanced JSON Output.0 - 	at org.apache.hop.pipeline.transforms.jsonoutputenhanced.JsonOutput.processRow(JsonOutput.java:122)
2025/07/25 10:27:19 - Enhanced JSON Output.0 - 	at org.apache.hop.pipeline.transform.RunThread.run(RunThread.java:54)
2025/07/25 10:27:19 - Enhanced JSON Output.0 - 	at java.base/java.lang.Thread.run(Thread.java:833)
2025/07/25 10:27:19 - Enhanced JSON Output.0 - Finished processing (I=0, O=0, R=3, W=0, U=0, E=1)

The error is most likely caused in this segment of code, where there is an attempt to fill a second element in an array that actually has one:

      Object[] additionalRowFields = new Object[1];

      additionalRowFields[0] = data.jsonSerialized;
      int nextFieldPos = 1;

      // Fill accessory fields
      if (meta.getJsonSizeFieldname() != null && meta.getJsonSizeFieldname().length() > 0) {
        additionalRowFields[nextFieldPos] = Long.valueOf(data.jsonLength);
        nextFieldPos++;
      }

Issue Priority

Priority: 2

Issue Component

Component: Transforms

Metadata

Metadata

Assignees

Labels

Type

No fields configured for Bug.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions