Community
Participate
Working Groups
build 2002-05-27 on WinXP. IBM JRE 1.3.1 - download Eclipse (includes Xerces 4.0.3) - get Xerces 3.2.1 from a previous drop - put org.apache.xerces_3.2.1 in eclipse/plugins/ - change plugin.xml for org.eclipse.webdav to require xerces 3.2.1 When I start up this dev image, webdav is using the wrong xerces.
Note this looks like it works OK on Win2000 but not on WinXP.
The problem is that we aren't looking at the PluginVersionIdentifier in InternalPlatform.activateDefaultPlugins(). Suggested fix: /** * The runtime plug-in is not totally real due to bootstrapping problems. * This method builds the required constructs to activate and install * the runtime plug-in. */ private static void activateDefaultPlugins() throws CoreException { // for now, simply do the default activation. This does not do the right thing // wrt the plugin class loader. PluginDescriptor descriptor = (PluginDescriptor) registry.getPluginDescriptor(Platform.PI_RUNTIME); DelegatingURLClassLoader loader = PlatformClassLoader.getDefault(); descriptor.activateDefaultPlugins(loader); descriptor.setPluginClassLoader(loader); descriptor.getPlugin(); descriptor = (PluginDescriptor) registry.getPluginDescriptor(PI_XML, xmlClassLoader.getPluginDescriptor().getVersionIdentifier()); descriptor.activateDefaultPlugins(xmlClassLoader); descriptor.setPluginClassLoader(xmlClassLoader); xmlClassLoader.setPluginDescriptor(descriptor); descriptor.getPlugin(); }
Created attachment 1147 [details] BinaryTestPlugins.zip
To reproduce the bug with the BinaryTestPlugins.zip follow these steps: 1. Unzip a 20020530 version of Eclipse. 2. Unzip the BinaryTestPlugins.zip into the plugins directory of your new Eclipse install. 3. Start Eclipse. 4. Click "Sample Menu->Sample Action" 5. A popup will appear. If Eclipse is behaving correctly (like on Win2k) you will see: <?xml version="1.0" encoding="utf-8"?> <outer xmlns="myuri:"><inner/></outer> If you see the following, Eclipse has loaded the wrong version of xerces: <?xml version="1.0" encoding="utf-8"?> <outer xmlns="myuri:"><inner xmlns=""/></outer>
Fixed, versioned and released. Thanks Jed.