Bug 61057

Summary: Tomcat JDT 4.6.1 Issues.
Product: Tomcat 8 Reporter: Durga Srinivasu Karuturi <durgasrinivasu>
Component: PackagingAssignee: Tomcat Developers Mailing List <dev>
Severity: normal    
Priority: P2    
Version: 8.5.12   
Target Milestone: ----   
Hardware: All   
OS: Linux   

Description Durga Srinivasu Karuturi 2017-05-01 04:09:30 UTC
We have tried migrating tomcat from 8.5.11 --> 8.5.14 for latest security fixes and found our jasaperreports functionality is broken.

Reports compilation is failing with unresolved type errors even though all related jars are in classpath

1. java.util.ResourceBundle cannot be resolved to a type
                value = ((java.util.ResourceBundle)parameter_REPORT_RESOURCE_BUNDLE.getValue()); //$JR_EXPR_ID=34$
2. net.sf.jasperreports.engine.JRDataSource cannot be resolved to a type
                value = ((net.sf.jasperreports.engine.JRDataSource)parameter_DS_controllers_by_model609.getValue()); //$JR_EXPR_ID=37$
3. net.sf.jasperreports.engine.JasperReport cannot be resolved to a type
                value = ((net.sf.jasperreports.engine.JasperReport)parameter_SR_controllers_by_model609.getValue()); //$JR_EXPR_ID=38$
4. java.util.ResourceBundle cannot be resolved to a type
                value = ((java.util.ResourceBundle)parameter_REPORT_RESOURCE_BUNDLE.getValue()); //$JR_EXPR_ID=40$
Debugged further and found this is because of 4.6.1 JDT compiler change from 8.5.12. This is a regression issue from JDT 4.6.1


I have tried 4.5.1 (from old tomcat 8.5.11) and 4.6.2 (from http://central.maven.org/maven2/org/eclipse/scout/sdk/deps/ecj/4.6.2/ecj-4.6.2.jar) it works fine.

As per Mark from mailing list confirmation, raising this issue for upgrading JDT to 4.6.2 or later to include JDT regression fixes in current 4.6.1
Comment 1 Durga Srinivasu Karuturi 2017-05-01 09:13:30 UTC
As per JDT Dev team JDT 4.6.3 (Neon) - is the most recent release with additional fixes.

Comment 2 Mark Thomas 2017-05-02 09:56:42 UTC
We have hit a small snag with our current process:

As well as following that up, I will look to see if an alternative artefact - such as the scout one mentioned above - is suitable.
Comment 3 Konstantin Kolinko 2017-05-02 12:16:01 UTC
Tomcat 8.5.14 / lib / ecj-4.6.1.jar / META-INF/MANIFEST.MF says:

Bundle-Version: 3.12.1.v20160829-0950

As such, the internal version of component used in Eclipse 4.6.3 is likely to be 3.12.3.

Searching for "ecj" in Central repository, there is
org.eclipse.jdt : ecj : 3.12.3

published 30-Mar-2017


This is the JAR that we need here.

Sha-512: 372da97d5f37095a3616c730170dc541b93acb8f50370cd9b0d81fba4583e865f0c933dc012155f26638306b82a402eaab209123cd0a979fa7c86313c0fca477
- the same as of ecj-4.6.3.jar from eclipse.org

Official download page:
Comment 4 Violeta Georgieva 2017-05-04 08:23:41 UTC

Thanks for the report.
The fix was committed in:
- trunk for 9.0.0.M21 onwards
- 8.5.x for 8.5.15 onwards
- 8.0.x for 8.0.44 onwards