Community
Participate
Working Groups
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
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.
Related newsgroup post: news://news.eclipse.org:119/dup968$r94$1@utils.eclipse.org
https://bugs.eclipse.org/bugs/show_bug.cgi?id=81910
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?
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
*** Bug 131689 has been marked as a duplicate of this bug. ***
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?
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.
(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.
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.
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 ***
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.