Closed spring-projects-issues closed 12 years ago
Juergen Hoeller commented
That's actually to be considered a JasperReports bug, or more specifically a breakage of backwards compatibility in a point release! If that constructor was public in JasperReports 1.0.0 (and previous 0.6.x releases), it absolutely needs to remain public in 1.0.1. I would inquire with the JasperReports to make it public again, even if deprecated, and release a corresponding patch release. They can turn it to private in JasperReports 1.1, but not in 1.0.1.
We might use the JasperReports 1.0.1 JRDefaultCompiler.getInstance() method in Spring 1.3, although that will require the use of JasperReports 1.0.1+. Spring 1.2.x currently supports JasperReports 0.6.5+, but I guess we'll change that to JasperReports 1.0.1+ as of Spring 1.3 then.
Juergen
Patrick Dumontel commented
Sorry, didn't mean to start a debate on the proper versioning of software, just alerting to a problem anyone upgrading their jars within a web application will run into.
1.2.x can safely upgrade to 1.0.0--I've done so myself. It's this new 1.0.1 that has the issue. Here's another thing to consider: the leading tools for Jasper--Jasper Assistant and iReport--have just issued new versions that support 1.0.1 by default. Therefore people using these tools will likely compile the reports in 1.0.1 and could get serialVersionUID errors when putting the *.jasper files in their apps.
The workaround would be to not compile and let AbstractJasperReportsView do the compiling... Another is to use iReport's compatibility setting and dropping to either 1.0.0 or the 0.6.x version that's currently supported by 1.2.x.
Looking forward to the 1.3 fix ;)
Patrick Dumontel opened SPR-1265 and commented
The AbstractJasperReportsView's reportCompiler initialization on line 172 reads:
However, in JasperReports 1.0.1, the constructor is no longer public. There is a public getInstance() method, so changing to:
private JRCompiler reportCompiler = JRDefaultCompiler.getInstance();
should fix.
Affects: 1.2.3