Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 132184 - Can't launch Help Contents dialog
Summary: Can't launch Help Contents dialog
Status: CLOSED DUPLICATE of bug 132020
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: TPTP (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P1 critical (vote)
Target Milestone: ---   Edit
Assignee: Ruth Lee CLA
QA Contact:
URL:
Whiteboard: closed471
Keywords:
: 131689 (view as bug list)
Depends on: 133561
Blocks: 81910
  Show dependency tree
 
Reported: 2006-03-16 11:20 EST by Anthony K Lyo CLA
Modified: 2016-05-05 10:44 EDT (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anthony K Lyo CLA 2006-03-16 11:20:02 EST
I am using tptp.sdk-TPTP-4.2.0-200603090100 and eclipse-SDK-3.2M5a-win32.
I unzipped both files. I opened Eclipse, and went to Help -> Help Content. I got error message - "Help cannot be displayed. The embedded application server could not run help web application. Check the log for details."
The following is what's in .log file.


!SESSION 2006-03-16 10:53:23.272 -----------------------------------------------
eclipse.buildId=I20060223-1656
java.version=1.5.0_06
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments:  -os win32 -ws win32 -arch x86 -clean

!ENTRY org.eclipse.tomcat 4 0 2006-03-16 10:53:41.158
!MESSAGE Exception occurred starting the embedded application server.
!STACK 0
org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
	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:146)
	at org.eclipse.help.internal.appserver.AppserverPlugin.startWebappServer(AppserverPlugin.java:143)
	at org.eclipse.help.internal.appserver.AppserverPlugin.getAppServer(AppserverPlugin.java:41)
	at org.eclipse.help.internal.appserver.WebappManager.start(WebappManager.java:58)
	at org.eclipse.help.internal.base.BaseHelpSystem.ensureWebappRunning(BaseHelpSystem.java:246)
	at org.eclipse.help.internal.base.HelpDisplay.displayHelpURL(HelpDisplay.java:164)
	at org.eclipse.help.internal.base.HelpDisplay.displayHelp(HelpDisplay.java:54)
	at org.eclipse.help.ui.internal.DefaultHelpUI.displayHelp(DefaultHelpUI.java:122)
	at org.eclipse.ui.internal.help.WorkbenchHelpSystem.displayHelp(WorkbenchHelpSystem.java:822)
	at org.eclipse.ui.internal.actions.HelpContentsAction$1.run(HelpContentsAction.java:83)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at org.eclipse.ui.internal.actions.HelpContentsAction.run(HelpContentsAction.java:81)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:492)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:530)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:480)
	at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:392)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:925)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3287)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2907)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1899)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1863)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:417)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:99)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:374)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:169)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
	at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:416)
	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)
	... 46 more
Caused by: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
	at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:412)
	... 47 more

!ENTRY org.eclipse.help.base 4 0 2006-03-16 10:53:41.178
!MESSAGE The embedded application server could not run help web application.
!STACK 1
org.eclipse.core.runtime.CoreException[0]: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
	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:146)
	at org.eclipse.help.internal.appserver.AppserverPlugin.startWebappServer(AppserverPlugin.java:143)
	at org.eclipse.help.internal.appserver.AppserverPlugin.getAppServer(AppserverPlugin.java:41)
	at org.eclipse.help.internal.appserver.WebappManager.start(WebappManager.java:58)
	at org.eclipse.help.internal.base.BaseHelpSystem.ensureWebappRunning(BaseHelpSystem.java:246)
	at org.eclipse.help.internal.base.HelpDisplay.displayHelpURL(HelpDisplay.java:164)
	at org.eclipse.help.internal.base.HelpDisplay.displayHelp(HelpDisplay.java:54)
	at org.eclipse.help.ui.internal.DefaultHelpUI.displayHelp(DefaultHelpUI.java:122)
	at org.eclipse.ui.internal.help.WorkbenchHelpSystem.displayHelp(WorkbenchHelpSystem.java:822)
	at org.eclipse.ui.internal.actions.HelpContentsAction$1.run(HelpContentsAction.java:83)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at org.eclipse.ui.internal.actions.HelpContentsAction.run(HelpContentsAction.java:81)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:492)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:530)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:480)
	at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:392)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:925)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3287)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2907)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1899)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1863)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:417)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:99)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:374)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:169)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
	at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:416)
	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)
	... 46 more
Caused by: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
	at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:412)
	... 47 more
!SUBENTRY 1 org.eclipse.tomcat 4 0 2006-03-16 10:53:41.178
!MESSAGE Exception occurred starting application server.
!STACK 0
org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
	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:146)
	at org.eclipse.help.internal.appserver.AppserverPlugin.startWebappServer(AppserverPlugin.java:143)
	at org.eclipse.help.internal.appserver.AppserverPlugin.getAppServer(AppserverPlugin.java:41)
	at org.eclipse.help.internal.appserver.WebappManager.start(WebappManager.java:58)
	at org.eclipse.help.internal.base.BaseHelpSystem.ensureWebappRunning(BaseHelpSystem.java:246)
	at org.eclipse.help.internal.base.HelpDisplay.displayHelpURL(HelpDisplay.java:164)
	at org.eclipse.help.internal.base.HelpDisplay.displayHelp(HelpDisplay.java:54)
	at org.eclipse.help.ui.internal.DefaultHelpUI.displayHelp(DefaultHelpUI.java:122)
	at org.eclipse.ui.internal.help.WorkbenchHelpSystem.displayHelp(WorkbenchHelpSystem.java:822)
	at org.eclipse.ui.internal.actions.HelpContentsAction$1.run(HelpContentsAction.java:83)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
	at org.eclipse.ui.internal.actions.HelpContentsAction.run(HelpContentsAction.java:81)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:492)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:530)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:480)
	at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:392)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:925)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3287)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2907)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1899)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1863)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:417)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:99)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:374)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:169)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
	at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:416)
	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525)
	... 46 more
Caused by: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Log4JLogger does not implement Log
	at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:412)
	... 47 more
Comment 1 Ruth Lee CLA 2006-03-16 12:39:57 EST
I can reproduce the problem when self-hosting but not when launching a workspace directly. 

If I use M5a alone, I cannot reproduce the problem.
If I use M5a with TPTP 0309 and self host, I can reproduce the problem.
If I use M4 with TPTP 0309 and self host, I cannot reproduce the problem.

Best guess so far is that there is an incompatibility between TPTP 0309 and M5a. Continuing to investigate.
Comment 2 Ruth Lee CLA 2006-03-16 13:19:40 EST
Related newsgroup post: news://news.eclipse.org:119/dup968$r94$1@utils.eclipse.org
Comment 4 Ruth Lee CLA 2006-03-17 10:04:01 EST
I found the source of the problem but I'm not sure how it should be fixed.

Both the org.apache.tomcat plug-in and org.apache.jakarta_commons_logging ship a copy of Apache commons-logging V1.0.3 (thankfully the versions match). In commons-logging there is a class named org.apache.commons.logging.impl.LogFactoryImpl. When starting Tomcat, a method named "getLogClassName()" is called on LogFactoryImpl. When Log4J is installed the name returned is "org.apache.commons.logging.impl.Log4JLogger" and when it is not installed the name returned is "org.apache.commons.logging.impl.Jdk14Logger". TPTP ships a copy of Log4J, and apparently the Log4J that we ship has the Log4JLogger class, but it doesn't implement the commons-logging "Log" class. 

What I don't understand now is why this fails only some of the time. I step-debugged and watched the "isLog4JAvailable()" method return false when Log4J was installed in the same "plugins" directory as commons-logging and tomcat. ("isLog4JAvailable() tries to load two classes and if no exception is thrown returns true.) But when self-hosting that method returned true, and apparently when you install the Eclipse base and TPTP into different directories it returns true, though I haven't figured out how to replicate that setup. I don't know enough about the Eclipse class loading mechanism to comment on this discrepancy.

Paul, can you comment on the Log4J and commons-logging that we ship in TPTP? Does Apache recommend that a certain version of Log4J be shipped with commons-logging V1.0.3? 
Comment 5 Ruth Lee CLA 2006-03-20 12:06:10 EST
Downgrading to critical because there is a workaround, either:
   1. Unzipping all plug-ins into the same 'plugins' directory.
   2. Disabling the Log4J plugin (Window > Preferences... > Plug-in Development > Target Platform > clear the "org.apache.jakarta_log4J_logging (1.2.8)" check box
Comment 6 Ruth Lee CLA 2006-03-21 10:12:47 EST
*** Bug 131689 has been marked as a duplicate of this bug. ***
Comment 7 Ruth Lee CLA 2006-03-27 14:21:13 EST
Paul, can you comment on the Log4J and commons-logging that we ship in TPTP?
Does Apache recommend that a certain version of Log4J be shipped with
commons-logging V1.0.3? 

Do you know who is in charge of the org.eclipse.tomcat plug-in that the TPTP apache logging plug-ins have a conflict with?
Comment 8 Chris Rose CLA 2006-03-27 14:56:56 EST
Regarding comment #4, that's not a valid workaround for any users running the
plugin in a working instance of Eclipse as opposed to a hosted runtime
workspace.  Unless there's a workaround for a runtime instance that doesn't
require mashing TPTP into the base eclipse install.  A common configuration is
to develop with TPTP installed in a separate directory.
Comment 9 Paul Slauenwhite CLA 2006-03-28 09:37:59 EST
(In reply to comment #7)
> Paul, can you comment on the Log4J and commons-logging that we ship in TPTP?
> Does Apache recommend that a certain version of Log4J be shipped with
> commons-logging V1.0.3? 
> Do you know who is in charge of the org.eclipse.tomcat plug-in that the TPTP
> Apache logging plug-ins have a conflict with?

The Jakarta Commons Logging documentation does not specify a specific Log4J version.  

The org.eclipse.tomcat plugin is provided by the Eclipse Platform.  

The problem is that the org.eclipse.tomcat plugin ships the commons-logging-api.jar which is not a full implementation of Jakarta Commons Logging (JCL).  The commons-logging-api.jar includes the JCL API and the default LogFactory implementation as well as the built-in Log implementations SimpleLog and NoOpLog. However it does not include the wrapper Log implementations that require additional libraries such as Log4j, Avalon and Lumberjack. 

When the org.eclipse.tomcat plugin is loaded before the TPTP JCL plugin and the TPTP Log4J plugin is loaded, the JCL in the org.eclipse.tomcat plugin (commons-logging-api.jar) is trying to resolve a class that it cannot instantiate the org.apache.commons.logging.impl.Log4JLogger class.  The org.apache.commons.logging.impl.Log4JLogger class packaged with the TPTP JCL plugin does implement the JCL Log interface.
Comment 10 Curtis d'Entremont CLA 2006-03-28 10:59:42 EST
This is a dup of bug 132020.

This problem has already been fixed (after M5a). It was caused by the addition
of a global buddy loading policy to the tomcat plugin. As a result, tomcat was
trying to use the TPTP common logging and failing. This has already been
removed and the problem should no longer exist in the latest 3.2 integration builds.

M6 will be out at the end of this week, so I suggest moving to that when it's out. If you need to see the help now, use the latest eclipse 3.2 integration build instead of M5a.
Comment 11 Ruth Lee CLA 2006-03-28 11:04:37 EST
With eclipse-SDK-I20060328-0010-win32.zip the problem is gone. Closing as a duplicate of 132020.

*** This bug has been marked as a duplicate of 132020 ***
Comment 12 Kathy Chan CLA 2010-11-18 18:55:53 EST
As of TPTP 4.6.0, TPTP is in maintenance mode and focusing on improving quality by resolving relevant enhancements/defects and increasing test coverage through test creation, automation, Build Verification Tests (BVTs), and expanded run-time execution. As part of the TPTP Bugzilla housecleaning process (see http://wiki.eclipse.org/Bugzilla_Housecleaning_Processes), this enhancement/defect is verified/closed by the Project Lead since this enhancement/defect has been resolved and unverified for more than 1 year and considered to be fixed. If this enhancement/defect is still unresolved and reproducible in the latest TPTP release (http://www.eclipse.org/tptp/home/downloads/), please re-open.