Closed criedel closed 10 years ago
I'm not sure I understood what you mean. I can't see template line in stack trace, can you show an example?
Of course! I was thinking about errors like these (bold text indicates where I'd make the text become a link):
Caused by: org.apache.tapestry5.ioc.util.UnknownValueException: Component landings/index:signup does not include a formal parameter 'infoBlock' (and does not support informal parameters). [at classpath:com/example/www/pages/landings/Index.tml, line 169] at org.apache.tapestry5.internal.pageload.PageLoaderImpl$6.execute(PageLoaderImpl.java:529) at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.runActions(ComponentAssemblerImpl.java:235) at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.java:113) ... 140 more
I think I got it, this info is not in the stack traces (not even in exception.getMessage()
) -- it's in TapestryException.toString()
, so you must be printing exception.toString()
in your logs.
I'll try to include support for this stuff in the next release.
Awesome, thanks!
There you go! You can try this in version 2.2.0.
Hyperlinks should work in java and stack trace consoles.
Current version supports classpath:
and context:
binding prefixes.
Line and column numbers (if present in error message) should be respected if you click the link:
After upgrading to the latest version I got this error message:
The 'com.anjlab.eclipse.tapestry5.hyperlink.TapestryComponentHyperlinkDetector' extension from plug-in 'com.anjlab.eclipse.tapestry5' to the 'org.eclipse.ui.workbench.texteditor.hyperlinkDetectors' extension point failed to load the hyperlink detector.
Plug-in com.anjlab.eclipse.tapestry5 was unable to load class com.anjlab.eclipse.tapestry5.hyperlink.TapestryComponentHyperlinkDetector.
An error occurred while automatically activating bundle com.anjlab.eclipse.tapestry5 (927).
I haven't touched this part, do you have any stack trace maybe? Also which version of eclipse are you using?
Here's my eclipse stats:
eclipse.buildId=4.3.0.M20130911-1000
java.version=1.7.0_51
java.vendor=Oracle Corporation
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=de_DE
Framework arguments: -product org.eclipse.epp.package.jee.product -keyring /Users/cr/.eclipse_keyring -showlocation
Command-line arguments: -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.jee.product -keyring /Users/cr/.eclipse_keyring -showlocation
And here are some exceptions from the error log:
java.lang.NoClassDefFoundError: com/anjlab/eclipse/tapestry5/EclipseUtils
at com.anjlab.eclipse.tapestry5.watchdog.TapestryContextWatchdog$1.resourceChanged(TapestryContextWatchdog.java:91)
at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:291)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:396)
at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1531)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2354)
at org.eclipse.debug.core.model.Breakpoint.setAttribute(Breakpoint.java:196)
at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.incrementInstallCount(JavaBreakpoint.java:848)
at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.registerRequest(JavaBreakpoint.java:229)
at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.createRequest(JavaBreakpoint.java:492)
at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.createRequests(JavaBreakpoint.java:626)
at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.addToTarget(JavaBreakpoint.java:584)
at org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget.breakpointAdded(JDIDebugTarget.java:1287)
at org.eclipse.jdt.internal.debug.ui.JavaDebugOptionsManager.notifyTarget(JavaDebugOptionsManager.java:296)
at org.eclipse.jdt.internal.debug.ui.JavaDebugOptionsManager.handleDebugEvents(JavaDebugOptionsManager.java:515)
at org.eclipse.debug.core.DebugPlugin$EventNotifier.run(DebugPlugin.java:1132)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.debug.core.DebugPlugin$EventNotifier.dispatch(DebugPlugin.java:1166)
at org.eclipse.debug.core.DebugPlugin$EventDispatchJob.run(DebugPlugin.java:430)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Caused by: org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: An error occurred while automatically activating bundle com.anjlab.eclipse.tapestry5 (927).
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:124)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
at org.eclipse.ui.internal.console.PatternMatchListenerExtension.createDelegate(PatternMatchListenerExtension.java:81)
at org.eclipse.ui.internal.console.PatternMatchListener.<init>(PatternMatchListener.java:26)
at org.eclipse.ui.internal.console.ConsoleManager.createPatternMatchListeners(ConsoleManager.java:406)
at org.eclipse.ui.internal.console.ConsoleManager.addConsoles(ConsoleManager.java:222)
at org.eclipse.debug.internal.ui.views.console.ProcessConsoleManager.launchChanged(ProcessConsoleManager.java:149)
at org.eclipse.debug.internal.core.LaunchManager$LaunchNotifier.run(LaunchManager.java:447)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.debug.internal.core.LaunchManager$LaunchNotifier.notify(LaunchManager.java:428)
at org.eclipse.debug.internal.core.LaunchManager.fireUpdate(LaunchManager.java:1017)
at org.eclipse.debug.core.Launch.fireChanged(Launch.java:388)
at org.eclipse.debug.core.Launch.addProcess(Launch.java:351)
at org.eclipse.debug.core.model.RuntimeProcess.<init>(RuntimeProcess.java:125)
at org.eclipse.debug.core.DebugPlugin.newProcess(DebugPlugin.java:767)
at org.eclipse.jdt.launching.AbstractVMRunner.newProcess(AbstractVMRunner.java:165)
at org.eclipse.jdt.internal.launching.StandardVMDebugger.run(StandardVMDebugger.java:277)
at org.eclipse.m2e.internal.launch.MavenRuntimeLaunchSupport$1.run(MavenRuntimeLaunchSupport.java:203)
at org.eclipse.jdt.launching.JavaLaunchDelegate.launch(JavaLaunchDelegate.java:101)
at org.eclipse.m2e.internal.launch.MavenLaunchDelegate.launch(MavenLaunchDelegate.java:88)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018)
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1222)
... 1 more
Caused by: org.osgi.framework.BundleException: Exception in com.anjlab.eclipse.tapestry5.Activator.start() of bundle com.anjlab.eclipse.tapestry5.
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:734)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:478)
at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:109)
... 38 more
Caused by: java.lang.NullPointerException
at com.anjlab.eclipse.tapestry5.watchdog.WindowSelectionListener.windowOpened(WindowSelectionListener.java:46)
at com.anjlab.eclipse.tapestry5.watchdog.WindowSelectionListener.addListener(WindowSelectionListener.java:93)
at com.anjlab.eclipse.tapestry5.watchdog.TapestryContextWatchdog.start(TapestryContextWatchdog.java:185)
at com.anjlab.eclipse.tapestry5.Activator.start(Activator.java:60)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
... 44 more
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: An error occurred while automatically activating bundle com.anjlab.eclipse.tapestry5 (927).
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:124)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:469)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
at org.eclipse.ui.internal.console.PatternMatchListenerExtension.createDelegate(PatternMatchListenerExtension.java:81)
at org.eclipse.ui.internal.console.PatternMatchListener.<init>(PatternMatchListener.java:26)
at org.eclipse.ui.internal.console.ConsoleManager.createPatternMatchListeners(ConsoleManager.java:406)
at org.eclipse.ui.internal.console.ConsoleManager.addConsoles(ConsoleManager.java:222)
at org.eclipse.debug.internal.ui.views.console.ProcessConsoleManager.launchChanged(ProcessConsoleManager.java:149)
at org.eclipse.debug.internal.core.LaunchManager$LaunchNotifier.run(LaunchManager.java:447)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.debug.internal.core.LaunchManager$LaunchNotifier.notify(LaunchManager.java:428)
at org.eclipse.debug.internal.core.LaunchManager.fireUpdate(LaunchManager.java:1017)
at org.eclipse.debug.core.Launch.fireChanged(Launch.java:388)
at org.eclipse.debug.core.Launch.addProcess(Launch.java:351)
at org.eclipse.debug.core.model.RuntimeProcess.<init>(RuntimeProcess.java:125)
at org.eclipse.debug.core.DebugPlugin.newProcess(DebugPlugin.java:767)
at org.eclipse.jdt.launching.AbstractVMRunner.newProcess(AbstractVMRunner.java:165)
at org.eclipse.jdt.internal.launching.StandardVMDebugger.run(StandardVMDebugger.java:277)
at org.eclipse.m2e.internal.launch.MavenRuntimeLaunchSupport$1.run(MavenRuntimeLaunchSupport.java:203)
at org.eclipse.jdt.launching.JavaLaunchDelegate.launch(JavaLaunchDelegate.java:101)
at org.eclipse.m2e.internal.launch.MavenLaunchDelegate.launch(MavenLaunchDelegate.java:88)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018)
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1222)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Caused by: org.osgi.framework.BundleException: Exception in com.anjlab.eclipse.tapestry5.Activator.start() of bundle com.anjlab.eclipse.tapestry5.
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:734)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:478)
at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:263)
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:109)
... 38 more
Caused by: java.lang.NullPointerException
at com.anjlab.eclipse.tapestry5.watchdog.WindowSelectionListener.windowOpened(WindowSelectionListener.java:46)
at com.anjlab.eclipse.tapestry5.watchdog.WindowSelectionListener.addListener(WindowSelectionListener.java:93)
at com.anjlab.eclipse.tapestry5.watchdog.TapestryContextWatchdog.start(TapestryContextWatchdog.java:185)
at com.anjlab.eclipse.tapestry5.Activator.start(Activator.java:60)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
... 44 more
That was NPE that causing this error.
Fixed in version 2.2.1 -- available for update now.
Thanks, now it works!
Tapestry's exceptions are quite verbose; you'll get an exact pointer to the source of the error, including the line in the template.
Unlike classes templates aren't clickable in the console's stacktrace. It would be awesome if I could click on the template name in my stacktrace and jump right to the line that caused the error.