Hi Gorkem,

Thanks for pointing me at that page. It didn't come up on web searches for
my error, so I added a couple of lines of the stack trace and a few other
bits of info from my email into that Wiki.

Thanks!
Jonah


~~~
Jonah Graham
Kichwa Coders Ltd.
www.kichwacoders.com

On 27 May 2016 at 21:56, Gorkem Ercan <gorkem.er...@gmail.com> wrote:

>
> There is also some more information on
> https://wiki.eclipse.org/JSDT/Equinox_hook_for_Nashorn
> that may be helpful.
> —
> Gorkem
>
>
> On 27 May 2016, at 13:25, Jonah Graham wrote:
>
> This is a heads up for anyone else who may come across this email when
>> searching for my stack trace below. I spent a bit of time trying to figure
>> out what went wrong, and I am not the only one (
>> https://www.eclipse.org/forums/index.php?t=msg&th=1076119). If anyone
>> knows
>> a better solution to this problem than I outline below I would be
>> grateful.
>>
>> When using JSDT setup in a PDE target platform you can get an exception
>> java.lang.NoClassDefFoundError: jdk/nashorn/internal/runtime/ECMAException
>> when opening JS editors in the runtime Eclipse.
>>
>> This does not happen in a properly installed Eclipse because the
>> classloading hooked in with https://wiki.eclipse.org/Adaptor_Hooks is
>> done
>> by P2 when it installs the org.eclipse.wst.jsdt.nashorn.extension bundle.
>> P2 automatically updates the config.ini with the osgi.framework.extensions
>> setting pointing at org.eclipse.wst.jsdt.nashorn.extension.
>>
>> PDE does not know about this (see http://eclip.se/271189), so if your
>> target platform has JSDT in it, the config.ini generated by PDE does not
>> have osgi.framework.extensions set. To be more precise, it works fine if
>> the target platform is setup to point to an existing installation having
>> JSDT installed properly because PDE inherits the config.ini in that case.
>> But if the PDE target platform is pointing directly at the P2 site, PDE
>> does not handle that case.
>>
>> The solution is to add
>>
>> -Dosgi.framework.extensions=org.eclipse.wst.jsdt.nashorn.extension_<version>.jar
>> to the vmargs of the launch configuration. You can add this to the launch
>> configuration, or to target file in the Environment tab, but the latter
>> will not affect launch configurations that were created before editing the
>> target file.
>>
>> I cannot figure out how to make the version or full name of the bundle a
>> variable so that it does not have to be updated. Nor do I know how to set
>> this up from a TPD (
>> https://github.com/mbarbero/fr.obeo.releng.targetplatform) file.
>>
>> HTH
>> Jonah
>>
>> This is an example of the stack trace you get:
>>
>> !ENTRY org.eclipse.ui 4 4 2016-05-27 17:59:55.023
>> !MESSAGE Unable to create part
>> !SUBENTRY 1 org.eclipse.ui.workbench.texteditor 4 0 2016-05-27
>> 17:59:55.023
>> !MESSAGE Editor could not be initialized.
>> !STACK 0
>> java.lang.NoClassDefFoundError: jdk/nashorn/internal/runtime/ECMAException
>> at org.eclipse.wst.jsdt.core.dom.ASTParser.createAST(ASTParser.java:647)
>> at
>>
>> org.eclipse.wst.jsdt.internal.core.CompilationUnit.buildStructure(CompilationUnit.java:168)
>> at
>>
>> org.eclipse.wst.jsdt.internal.core.Openable.generateInfos(Openable.java:243)
>> at
>>
>> org.eclipse.wst.jsdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:538)
>> at
>>
>> org.eclipse.wst.jsdt.internal.core.BecomeWorkingCopyOperation.executeOperation(BecomeWorkingCopyOperation.java:39)
>> at
>>
>> org.eclipse.wst.jsdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:742)
>> at
>>
>> org.eclipse.wst.jsdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:802)
>> at
>>
>> org.eclipse.wst.jsdt.internal.core.CompilationUnit.becomeWorkingCopy(CompilationUnit.java:122)
>> at
>>
>> org.eclipse.wst.jsdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.createFileInfo(CompilationUnitDocumentProvider.java:975)
>> at
>>
>> org.eclipse.ui.editors.text.TextFileDocumentProvider.connect(TextFileDocumentProvider.java:478)
>> at
>>
>> org.eclipse.wst.jsdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.connect(CompilationUnitDocumentProvider.java:1190)
>> at
>>
>> org.eclipse.ui.texteditor.AbstractTextEditor.doSetInput(AbstractTextEditor.java:4178)
>> at
>>
>> org.eclipse.ui.texteditor.StatusTextEditor.doSetInput(StatusTextEditor.java:229)
>> at
>>
>> org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.doSetInput(AbstractDecoratedTextEditor.java:1466)
>> at
>>
>> org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor.internalDoSetInput(JavaEditor.java:2173)
>> at
>>
>> org.eclipse.wst.jsdt.internal.ui.javaeditor.JavaEditor.doSetInput(JavaEditor.java:2146)
>> at
>>
>> org.eclipse.wst.jsdt.internal.ui.javaeditor.CompilationUnitEditor.doSetInput(CompilationUnitEditor.java:1306)
>> at
>>
>> org.eclipse.ui.texteditor.AbstractTextEditor$5.run(AbstractTextEditor.java:3154)
>> at
>>
>> org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:437)
>> at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:353)
>> at
>> org.eclipse.ui.internal.WorkbenchWindow$14.run(WorkbenchWindow.java:2184)
>> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
>> at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2180)
>> at
>>
>> org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3172)
>> at
>>
>> org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3197)
>> at
>>
>> org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:362)
>> at
>>
>> org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:319)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> at
>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:498)
>> at
>>
>> org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:54)
>> at
>>
>> org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:966)
>> at
>>
>> org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:931)
>> at
>> org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:151)
>> at
>>
>> org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:375)
>> at
>> org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:294)
>> at
>>
>> org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56)
>> at
>>
>> org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:973)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:649)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:755)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:726)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:720)
>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:704)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.PartServiceImpl$1.handleEvent(PartServiceImpl.java:104)
>> at
>>
>> org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40)
>> at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233)
>> at
>> org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:145)
>> at org.eclipse.swt.widgets.Display.syncExec(Display.java:5395)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:211)
>> at
>>
>> org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36)
>> at
>>
>> org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:201)
>> at
>>
>> org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
>> at
>>
>> org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
>> at
>>
>> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
>> at
>>
>> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
>> at
>>
>> org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
>> at
>>
>> org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
>> at
>>
>> org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
>> at
>>
>> org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:94)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:60)
>> at
>>
>> org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
>> at
>>
>> org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:173)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:617)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:581)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:770)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:401)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1214)
>> at
>>
>> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3261)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.access$25(WorkbenchPage.java:3176)
>> at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:3158)
>> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3153)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3117)
>> at
>> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3107)
>> at org.eclipse.ui.ide.IDE.openEditor(IDE.java:563)
>> at org.eclipse.ui.ide.IDE.openEditor(IDE.java:518)
>> at org.eclipse.ui.actions.OpenFileAction.openFile(OpenFileAction.java:100)
>> at
>>
>> org.eclipse.ui.actions.OpenSystemEditorAction.run(OpenSystemEditorAction.java:97)
>> at org.eclipse.ui.actions.RetargetAction.run(RetargetAction.java:225)
>> at
>>
>> org.eclipse.ui.navigator.CommonNavigatorManager$2.open(CommonNavigatorManager.java:191)
>> at
>>
>> org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:46)
>> at
>>
>> org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:855)
>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
>> at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
>> at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
>> at
>>
>> org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:852)
>> at
>>
>> org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1169)
>> at org.eclipse.ui.navigator.CommonViewer.handleOpen(CommonViewer.java:451)
>> at
>> org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:278)
>> at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:272)
>> at
>> org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:313)
>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
>> at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5208)
>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1340)
>> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4542)
>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4132)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1119)
>> at
>>
>> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1020)
>> at
>>
>> org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150)
>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:687)
>> at
>>
>> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
>> at
>>
>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:604)
>> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
>> at
>>
>> org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138)
>> at
>>
>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>> at
>>
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
>> at
>>
>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
>> at
>>
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
>> at
>>
>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> at
>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:498)
>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
>> at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
>> at org.eclipse.equinox.launcher.Main.main(Main.java:1492)
>> Caused by: java.lang.ClassNotFoundException:
>> jdk.nashorn.internal.runtime.ECMAException cannot be found by
>> org.eclipse.wst.jsdt.core_2.0.0.v201605200022
>> at
>>
>> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:444)
>> at
>>
>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:357)
>> at
>>
>> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:349)
>> at
>>
>> org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>> ... 124 more
>>
>>
>> ~~~
>> Jonah Graham
>> Kichwa Coders Ltd.
>> www.kichwacoders.com
>> _______________________________________________
>> wtp-dev mailing list
>> wtp-dev@eclipse.org
>> To change your delivery options, retrieve your password, or unsubscribe
>> from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/wtp-dev
>>
> _______________________________________________
> wtp-dev mailing list
> wtp-dev@eclipse.org
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/wtp-dev
_______________________________________________
wtp-dev mailing list
wtp-dev@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/wtp-dev

Reply via email to