I've encountered the same stack trace as well as "java.lang.Integer cannot be cast to java.lang.Boolean" and "java.lang.String cannot be cast to java.lang.Boolean".
A workaround for me was to ensure that the names of subreport styles with conditional elements were unique. For example, a report containing two subreports 'SubreportA' and 'SubreportB' both with a style 'Row' (with conditional styling) would generate the exception; changing the name of the style in 'SubreportA' to 'RowA' and in 'SubreportB' to 'RowB' allowed the report to run successfully.
The original report ran successfully in iReport 4.1.2/JasperServer 4.2.1 CE and failed in iReport 4.5.0/JasperServer 4.5.0 CE. iReport was running on:
Windows 7
java version "1.7.0"
Java SE Runtime Environment (build 1.7.0-b147)
Java HotSpot 64-Bit Server VM (build 21.0-b17, mixed mode)
JasperServer on:
Debian Squeeze
java version "1.6.0_26"
Java SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot 64-Bit Server VM (build 20.1-b02, mixed mode)
Same MySQL 5.1 server in both instances.
(For the record, I tried cerating a simple example with an XML datasource but could not replicate the bug.)