[SOLVED] ClassLoader problem : How to specify it ? [message #933728] |
Fri, 05 October 2012 05:31  |
Eclipse User |
|
|
|
I have been trying to integrate an SVG export in my Eclipse RCP software, but I have a problem when running the code:
!ENTRY org.eclipse.ui 4 0 2012-10-03 16:39:44.835
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.LinkageError: loader constraint violation: loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) previously initiated loading for a different type with name "org/w3c/dom/DOMImplementation"
at bob.ImageExportUtils.exportAWTasSVG(ImageExportUtils.java:51)
at bob.HeatMapView.widgetSelected(HeatMapView.java:692)
...
For running my software and have no problem with external jar files, I inserted all of them in a plugin bob.lib, created using the wizard "Plugin from jar files". This plugin is the only dependencies declared for my bob plugin (excepted of course the different org.eclipse.* plugin always needed)
I first thought that my problem come from the fact that bob.lib plugin contains different type of jar, and maybe two of them have both implemented org.w3c.dom.DOMImplementation, so a conflict is reached has the ClassLoader try to re-load an existing class. But when looking at this plugin and search through Navigate > Open Type, I found only one occurence of this class.
So it is definitely a ClassLoader problem. I admit that the concept of ClassLoader is for me totally virtual (I understand the concept but never go in the deep code). I found one day on a forum someone explaining that you can ask for a class to be loaded by a different ClassLoader than the rest of the project. But I cannot find it today.
So if you have a hint on my problem I would be pleased to hear it !
Thank you.
[Edit] The class org.w3c.dom.DOMImplementation comes from Batik jar (SVG manipulation).
[Updated on: Tue, 16 October 2012 11:06] by Moderator
|
|
|
|
Powered by
FUDForum. Page generated in 0.03066 seconds