Jump to content
We've recently updated our Privacy Statement, available here ×

VerifyError on AS400 in jasperreports 1.2.3


jtotaf

Recommended Posts

Hi!

 

Running jasperreports 1.2.3 on AS400 with JVM V5R3M0 and JDK 1.4.2 gives error:

 

java.lang.VerifyError: net/sf/jasperreports/engine/fill/JRBaseFiller 0000 0000

 

The headless AWT toolkit environment is being used.

 

We have NOT had this problem with jasperreports 1.0.3. I'd like to get 1.2.3 or later running to use a new feature (Evaluation Time auto).

 

Appreciate your help.

 

john

Link to comment
Share on other sites

  • Replies 9
  • Created
  • Last Reply

Top Posters In This Topic

Thanks Teodor:

 

I've confirmed that the Javaflow jar is in the classpath. I also tried setting the os400.verify.checks.disable property to 'bypass access checks for local classes' and 'suppress NoClassDefFoundError during early load'. But I'm still getting the error:

 

java.lang.VerifyError: net/sf/jasperreports/engine/fill/JRBaseFiller 0000 0000

at java.lang.Throwable.<init>(Throwable.java:195)

at java.lang.Error.<init>(Error.java:49)

at java.lang.VerifyError.<init>(VerifyError.java:34)

at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:57)

at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:147)

at GenerateReport.generate(GenerateReport.java:707)

at GenerateReport.main(GenerateReport.java:241)

 

(GenerateReport is the main).

 

It's only the AS400 we're having trouble with. I've successfully run Jasperreports 1.2.3 on Windows Xp 5.1 and AIX 5.1.

 

john

Link to comment
Share on other sites

Could you try to perform a JR build without the Javaflow instrumentation? This way we would be able to tell whether the problem is related to the Javaflow code instrumentation.

 

All you need to do is to get the sources, edit build.xml by commenting out the "javaflow" task inside the "compile" target, and run "ant clean jar". You would find the newly built jar under the "dist" folder.

 

Regards,

Lucian

Link to comment
Share on other sites

I removed javaflow as you explained and rebuilt jasperreports-1.2.5.jar on Windows Xp with j2sdk1.4.2_11. Copied this to AS400 and found that reports now run fine on AS400.

 

Many thanks to Lucian and Teodor for your help!

 

Is there any significant functionality that will be lost without javaflow? Would you recommended that we continue to use the version with javaflow on the platforms where it works (i.e. Windows, AIX)?

Link to comment
Share on other sites

The dependency on Javaflow was introduced as a solution to a J2EE compliancy issue. More precisely, the fact that the JR engine needs to spawn a new thread in order to render a subreport raised issues in certain J2EE environments. Javaflow continuations can be used now as an alternative to threads for subreport rendering. More details here:

http://sourceforge.net/tracker/index.php?func=detail&aid=1457827&group_id=36382&atid=416703

 

 

If you don't have any problems regarding subreports and threads, you could use your Javaflow-disabled build in all the environments. Javaflow continuations are not enabled by default, one needs to do that explicitly; therefore unless you've done that, you haven't been actually using the Javaflow code anyway.

 

Regards,

Lucian

Link to comment
Share on other sites

Thanks again Lucian. Just one last point - I'd like to find out more about how to use javaflow continuations in jasperreports but when a try to attach to the URL you gave I get the message

Artifact: Only Group Members Can View Private ArtifactTypes
even when I've logged on. Can I get access to this or is there another URL to use?

 

Thanks,

john

Link to comment
Share on other sites

Apparently the JR project's trackers on sf.net have been made private so that people would post new items on jasperforge.org instead. Sorry, I was not aware of that.

 

Here is a link to a forum discussion related to this matter:

https://sourceforge.net/forum/forum.php?thread_id=1468223&forum_id=113530

 

To use the Javaflow continuations instead of threads for subreport, you only need to add this line to your jasperreports.properties (which should be placed on the classpath):

Code:
net.sf.jasperreports.subreport.runner.factory=net.sf.jasperreports.engine.fill.JRContinuationSubreportRunnerFactory

 

Regards

Link to comment
Share on other sites

  • 8 months later...

Came across this while looking for a solution to the same problem using the zOS 64 bit 1.5 JVM.

 

Do I understand that continuations are compiled in but not utilized unless you explicitly set the runtime flag mentioned below?

 

Since I'm not running in a J2EE server I should be completely fine using threads, correct?

 

Anyway we've encountered the same problem. This is another VM that seems to reject the javaflow mangled class file.

 

I will re-build the library from source to workaround as you suggested. I wish there was a solution which did not require rebuilding jasper reports each time we update.

Link to comment
Share on other sites

Hi:

 

There is no need any more to rebuild the library yourself without Javaflow.

 

Later versions of the distribution now include a version without javaflow and a version with javaflow.

 

john

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...