The org.apache.batik.pdf_1.6.0.v201105071520.jar included with the birt report-engine integration appears to include an old version of the classes from commons.io.
As I understand it,to install the report engine, the libraries from reportEngine/lib, including the batik.pdf jar should be copied to WEB-INF/lib, which I have done.
When a request is made by the console to get the process image content in order to display it in the console window, an error is logged stating that the image could not be loaded.
The underlying cause of this is that in the jbpm-gwt-shared project the GuvnorConnectionUtils.getProcessSourceContent() method is throwing a NoSuchMethodError at line 212, which is not being caught or logged.
The cause is that method org.apache.commons.io.IOUtils.copy(InputStream, Writer) does not exist. This method was introduced in version 1.1 of commons.io.
Removing the org.apache.batik.pdf_1.6.0.v201105071520.jar, allows the classes in commons.io.1.4.jar to become visible and solves the problem.
I am not familiar with the jboss Modules system. Is there some configuration which can hide these offending classes from other libraries within the same deployment?
I can submit a patch which replaces the catch block at line 214 of GuvnorConnectionUtils to catch a Throwable, so at least a clear message is logged if this problem affects anyone else.
Am I doing something daft or missing another obvious solution?
Any pointers to solutions will be much appreciated.
I have asked a question about the inclusion of the commons.io classes in the batik.pdf jar on the eclipse Birt forum.
If anyone else is seeing this problem could you mention this in the eclipse bug report https://bugs.eclipse.org/bugs/show_bug.cgi?id=388514 as it may help get the problem fixed.
Message was edited by: Peter Courcoux to make the problem description clearer