Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 78681

Summary: Help function fails due to log4j conflict
Product: [Eclipse Project] Platform Reporter: Mark Evans <evans_mark>
Component: User AssistanceAssignee: Platform-Help-Inbox <platform-help-inbox>
Status: RESOLVED DUPLICATE QA Contact:
Severity: normal    
Priority: P3    
Version: 3.0.1   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Mark Evans CLA 2004-11-15 18:04:59 EST
When I attempted to run Help -> Help Contents on a newly installed eclipse 
platform, an error message popped and the Error Log captured the traceback 
that follows.  After removing log4j-1.2.9.jar from C:\j2sdk1.4.1_01
\jre\lib\ext the problem goes away.  Is this expected?


org.eclipse.core.runtime.CoreException[0]: 
org.apache.commons.logging.LogConfigurationException: 
org.apache.commons.logging.LogConfigurationException: No suitable Log 
constructor [Ljava.lang.Class;@bb5859 for 
org.apache.commons.logging.impl.Log4JLogger
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance
(LogFactoryImpl.java:532)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance
(LogFactoryImpl.java:272)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:414)
at org.apache.commons.digester.Digester.<init>(Digester.java:346)
at org.apache.catalina.realm.MemoryRealm.getDigester(MemoryRealm.java:278)
at org.apache.catalina.realm.MemoryRealm.start(MemoryRealm.java:348)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1173)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363)
at org.apache.catalina.startup.Embedded.addEngine(Embedded.java:464)
at org.eclipse.tomcat.internal.TomcatAppServer.start(TomcatAppServer.java:97)
at org.eclipse.help.internal.appserver.AppserverPlugin.startWebappServer
(AppserverPlugin.java:145)
at org.eclipse.help.internal.appserver.AppserverPlugin.getAppServer
(AppserverPlugin.java:42)
at org.eclipse.help.internal.appserver.WebappManager.start
(WebappManager.java:57)
at org.eclipse.help.internal.base.BaseHelpSystem.ensureWebappRunning
(BaseHelpSystem.java:182)
at org.eclipse.help.internal.base.HelpDisplay.displayHelpURL
(HelpDisplay.java:156)
at org.eclipse.help.internal.base.HelpDisplay.displayHelp(HelpDisplay.java:48)
at org.eclipse.help.ui.internal.DefaultHelpUI.displayHelp
(DefaultHelpUI.java:43)
at org.eclipse.ui.help.WorkbenchHelp.displayHelp(WorkbenchHelp.java:210)
at org.eclipse.ui.internal.actions.HelpContentsAction$1.run
(HelpContentsAction.java:78)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
at org.eclipse.ui.internal.actions.HelpContentsAction.run
(HelpContentsAction.java:76)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:881)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection
(ActionContributionItem.java:915)
at org.eclipse.jface.action.ActionContributionItem.access$2
(ActionContributionItem.java:866)
at org.eclipse.jface.action.ActionContributionItem$7.handleEvent
(ActionContributionItem.java:785)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run
(PlatformActivator.java:335)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
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:324)
at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
at org.eclipse.core.launcher.Main.run(Main.java:704)
at org.eclipse.core.launcher.Main.main(Main.java:688)
Caused by: org.apache.commons.logging.LogConfigurationException: No suitable 
Log constructor [Ljava.lang.Class;@bb5859 for 
org.apache.commons.logging.impl.Log4JLogger
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor
(LogFactoryImpl.java:432)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance
(LogFactoryImpl.java:525)
... 43 more
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:1590)
at java.lang.Class.getConstructor0(Class.java:1762)
at java.lang.Class.getConstructor(Class.java:1002)
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor
(LogFactoryImpl.java:429)
... 44 more
Comment 1 Konrad Kolosowski CLA 2004-11-18 15:01:29 EST
It would be nice if it did not happen, but Eclipse help requires no 
conflicting jars in the JRE.  This reported in 63970 and documented in the 
readme.  You can pass a different VM (without conflicting jars) to eclipse 
using -vm command line option.

*** This bug has been marked as a duplicate of 63970 ***