I have a few JasperReports made and running very fine on a Windows machine. The problem started when the reports were set to run on a mainframe with zOS operating system.
The problem is: when Jasper creates the report it seems to read the tables metadata from the database and based on it expect the data to come.
Example: if i have a column of type varchar(20), then Jasper will be waiting for 20 chars only even if the report field is defined as String.
That doesn't happen in Windows environment, but on the mainframe the character-encoding is EBCDIC, and so the column might have 19 chars on the mainframe, but when encoded its returned to the report as 23 or 24 characters.
Note: this problem only occurs in non-English characters.
UPDATE
A ConversionBufferFull
is thrown when Jasper is creating the report, i don't have the full trace since i can't access the mainframe log. The problem occurs with only one column called COUNTRY_DESC when the value is around 17-20 chars, the exception occurs.
As i mentioned the character set on the mainframe is EBCDIC, but when its read through the JDBC its converted to Unicode. for example in EBCDIC the word will be 17 chars, but when converted it become 22. For some strange reason Jasper expects 20 for this field only.