Community
Participate
Working Groups
When trying to switch to the WPE Preview page, the following occurs and the page does not display: java.lang.LinkageError: loader constraint violation: loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) previously initiated loading for a different type with name "javax/servlet/jsp/el/VariableResolver" at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:165) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:503) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:473) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:432) at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:415) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:193) at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:354) at org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(SingleSourcePackage.java:33) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:418) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:383) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:371) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124) at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140) at org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263) at org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190) at org.eclipse.jst.pagedesigner.preview.PageExpressionContext.evaluateExpression(PageExpressionContext.java:131) at org.eclipse.jst.pagedesigner.dtmanager.converter.internal.DTTagConverterDecorator.resolveChildText(DTTagConverterDecorator.java:164) at org.eclipse.jst.pagedesigner.dtmanager.converter.internal.DTTagConverterDecorator.decorateFromDTInfo(DTTagConverterDecorator.java:92) at org.eclipse.jst.pagedesigner.dtmanager.converter.internal.DTTagConverterDecorator.decorate(DTTagConverterDecorator.java:62) at org.eclipse.jst.pagedesigner.dtmanager.converter.internal.DTTagConverter.convertRefresh(DTTagConverter.java:75) at org.eclipse.jst.pagedesigner.preview.PreviewConvertContext.previewConvertElement(PreviewConvertContext.java:93) at org.eclipse.jst.pagedesigner.preview.PreviewConvertContext.previewConvert(PreviewConvertContext.java:56) at org.eclipse.jst.pagedesigner.preview.PreviewConvertContext.previewConvertElement(PreviewConvertContext.java:100) at org.eclipse.jst.pagedesigner.preview.PreviewConvertContext.previewConvert(PreviewConvertContext.java:56) at org.eclipse.jst.pagedesigner.preview.PreviewConvertContext.previewConvertElement(PreviewConvertContext.java:100) at org.eclipse.jst.pagedesigner.preview.PreviewConvertContext.previewConvert(PreviewConvertContext.java:56) at org.eclipse.jst.pagedesigner.preview.PreviewConvertContext.previewConvertElement(PreviewConvertContext.java:100) at org.eclipse.jst.pagedesigner.preview.PreviewConvertContext.previewConvert(PreviewConvertContext.java:56) at org.eclipse.jst.pagedesigner.preview.PreviewConvertContext.previewConvertElement(PreviewConvertContext.java:100) at org.eclipse.jst.pagedesigner.preview.PreviewConvertContext.previewConvert(PreviewConvertContext.java:56) at org.eclipse.jst.pagedesigner.preview.PreviewConvertContext.previewConvertElement(PreviewConvertContext.java:100) at org.eclipse.jst.pagedesigner.preview.PreviewConvertContext.previewConvert(PreviewConvertContext.java:56) at org.eclipse.jst.pagedesigner.preview.PreviewHandlerNew.generatePreview(PreviewHandlerNew.java:97) at org.eclipse.jst.pagedesigner.editors.HTMLEditor.pageChange(HTMLEditor.java:961) at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:260) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1006) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:991) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:749) at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3236) at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:2011) at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:316) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3760) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3371) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2392) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2356) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2222) at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:474) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:469) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at org.eclipse.equinox.launcher.Main.run(Main.java:1251) at org.eclipse.equinox.launcher.Main.main(Main.java:1227)
WTP build I-I20080313113126.
We have multiple copies of javax.servlet, javax.servlet.jsp, and org.apache.commons.el (plus others that may not affect us) plug-ins yet again. One set is contributed by Eclipse SDK, the other by WTP SDK. This has bitten us multiple times, and the bigger issues keep being overlooked: 1) since they're versioned, why is there a conflict? 2) we can't control what other plug-ins end-users will install alongside WTP, and so ensuring platform and WTP are in-synch is not a real solution - issue #1 needs to be investigated.
There were packaging issues in earlier I-builds this week that may have something to do with this. CC'ing DW. Is this possible David?
(In reply to comment #3) > There were packaging issues in earlier I-builds this week that may have > something to do with this. CC'ing DW. Is this possible David? > The packaging issue is probably that Platform has moved up to latest I-build from Orbit, whereas we in WTP have not yet (we reverted due to unrelated issues). But, Ian's right ... the larger picture keeps getting ignored. There's some code somewhere that ends up with a mis-match of classloaders. Not sure if it's in the core of org.apache.commons.el or our code. But "we" need to look for a solution other than making sure there's only one version of the plugins in the stack. I'll try to help, eventually, but may take a while.
I should add, another thing that would help is to question if we even need to redistribute javax.servlet, javax.servlet.jsp, and org.apache.commons.el. I think we did originally because I thought they were optional, maybe even incubating in equinox. If these have become a standard part of the equinox (platform) distribution, then there probably is no reason for us to do so, since they would always be present. Does anyone know for sure? Tim has mentioned this to me before, so am CC'ing him. If we didn't re-distribute, the fundamental problem would still be there, but would be much less likely, especially during "routine" installations.
See also bug 212310 for previous report of this issue. I have checked, and those three 3rd party jars are shipped in the platform runtime, so I would recommend we remove from our features, so we do not redistribute them. Thought I'd still like the real issue investigated. I think there's possibility that we in WTP may even want to ship different (more recent) versions of those jars sometime soon?
I've removed from our "include" plugins (in jst.web_core) so this shouldn't be a problem in our final declared build. I did make sure all are listed in the "requires" section, though doubt that would matter with current packages.
Confirmed things are working again with build I-I20080314073909. The fact that another feature may install other versions of plug-ins that may conflict is not far enough outside the realm of possibility for me to consider this *really* fixed, though, so not changing status of the issue at this time.
I assumed bug 212310 could serve as the on-going bug ... but if you'd prefer this one (more is written in it, so that'd make some sense) then you could re-open this one, and close bug 212310 as a dup of this).
Reopening and resolving 212310 as a duplicate of this (this bug has more discussion, so making this the tracking bug).
*** Bug 212310 has been marked as a duplicate of this bug. ***
I'm untargeting, since the 3.0 RC target is obviously no longer accurate.
dropped the severity to normal.
Fixed in 3.1.2