-
Notifications
You must be signed in to change notification settings - Fork 51
Description
On RHEL Tern.java attempts to extract Node.js runtime into a directory that is not accessible to a user.
!ENTRY tern.eclipse.ide.server.nodejs.core 4 0 2016-10-21 14:34:24.958
!MESSAGE Could not load nodeJSInstall: node-v0.10.22-linux-x86_64
!STACK 0
java.io.FileNotFoundException: /opt/rh/rh-eclipse46/root/usr/share/eclipse/droplets/devstudio/eclipse/plugins/tern.eclipse.ide.server.nodejs.embed.linux.gtk.x86_64_1.1.0.201511082254/node-v0.10.22-linux-x86_64/LICENSE (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at tern.utils.ZipUtils.extract(ZipUtils.java:83)
at tern.eclipse.ide.server.nodejs.internal.core.NodejsInstall.<init>(NodejsInstall.java:56)
at tern.eclipse.ide.server.nodejs.internal.core.NodejsInstallManager.addNodejsInstalls(NodejsInstallManager.java:132)
at tern.eclipse.ide.server.nodejs.internal.core.NodejsInstallManager.loadNodejsInstalls(NodejsInstallManager.java:117)
at tern.eclipse.ide.server.nodejs.internal.core.NodejsInstallManager.getNodejsInstalls(NodejsInstallManager.java:69)
at tern.eclipse.ide.server.nodejs.internal.core.preferences.TernNodejsCorePreferenceConstants.useBundledNodeJsInstall(TernNodejsCorePreferenceConstants.java:91)
at tern.eclipse.ide.server.nodejs.internal.core.preferences.TernNodejsCorePreferenceConstants.initializeDirectAccess(TernNodejsCorePreferenceConstants.java:70)
at tern.eclipse.ide.server.nodejs.internal.core.preferences.TernNodejsCorePreferenceConstants.initializeDefaultValues(TernNodejsCorePreferenceConstants.java:45)
at tern.eclipse.ide.server.nodejs.internal.core.preferences.TernNodejsCorePreferenceInitializer.initializeDefaultPreferences(TernNodejsCorePreferenceInitializer.java:24)
at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper$1.run(PreferenceServiceRegistryHelper.java:298)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.runInitializer(PreferenceServiceRegistryHelper.java:301)
at org.eclipse.core.internal.preferences.PreferenceServiceRegistryHelper.applyRuntimeDefaults(PreferenceServiceRegistryHelper.java:131)
at org.eclipse.core.internal.preferences.PreferencesService.applyRuntimeDefaults(PreferencesService.java:370)
at org.eclipse.core.internal.preferences.DefaultPreferences.applyRuntimeDefaults(DefaultPreferences.java:222)
at org.eclipse.core.internal.preferences.DefaultPreferences.load(DefaultPreferences.java:276)
at org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:370)
at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences.java:623)
at org.eclipse.core.internal.preferences.DefaultPreferences.node(DefaultPreferences.java:147)
at org.eclipse.core.internal.preferences.legacy.PreferenceForwarder.getDefaultPreferences(PreferenceForwarder.java:134)
at org.eclipse.core.internal.preferences.legacy.PreferenceForwarder.getString(PreferenceForwarder.java:663)
at tern.eclipse.ide.core.preferences.PreferencesSupport.getWorkspacePreferencesValue(PreferencesSupport.java:115)
at tern.eclipse.ide.server.nodejs.internal.core.preferences.TernNodejsCorePreferencesSupport.isNodejsRemoteAccess(TernNodejsCorePreferencesSupport.java:147)
at tern.eclipse.ide.server.nodejs.internal.core.TernNodejsServerFactory.isRemoteAccess(TernNodejsServerFactory.java:67)
at tern.eclipse.ide.server.nodejs.internal.core.TernNodejsServerFactory.create(TernNodejsServerFactory.java:35)
at tern.eclipse.ide.internal.core.TernServerType.createServer(TernServerType.java:90)
at tern.eclipse.ide.internal.core.resources.IDETernProject.getTernServer(IDETernProject.java:161)
at tern.resources.TernFileSynchronizer.ensureSynchronized(TernFileSynchronizer.java:160)
at tern.eclipse.ide.internal.ui.EditorActivationTracker$2.run(EditorActivationTracker.java:85)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
!ENTRY tern.eclipse.ide.core 4 0 2016-10-21 14:34:27.182
!MESSAGE java.io.IOException: Cannot run program "node" (in directory "/home/lvalach/rpm-workspace/StaticWebProject"): error=2, No such file or directory
!STACK 0
tern.TernException: java.io.IOException: Cannot run program "node" (in directory "/home/lvalach/rpm-workspace/StaticWebProject"): error=2, No such file or directory
at tern.eclipse.ide.internal.core.resources.IDETernFileUploader$1.onError(IDETernFileUploader.java:133)
at tern.server.nodejs.NodejsTernServer.request(NodejsTernServer.java:131)
at tern.eclipse.ide.internal.core.resources.IDETernFileUploader.run(IDETernFileUploader.java:124)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: tern.server.nodejs.process.NodejsProcessException: java.io.IOException: Cannot run program "node" (in directory "/home/lvalach/rpm-workspace/StaticWebProject"): error=2, No such file or directory
at tern.server.nodejs.process.internal.NodejsProcess.start(NodejsProcess.java:245)
at tern.server.nodejs.process.AbstractNodejsProcess.start(AbstractNodejsProcess.java:144)
at tern.server.nodejs.NodejsTernServer.getBaseURL(NodejsTernServer.java:202)
at tern.server.nodejs.NodejsTernServer.makeRequest(NodejsTernServer.java:139)
at tern.server.nodejs.NodejsTernServer.request(NodejsTernServer.java:127)
... 2 more
Caused by: java.io.IOException: Cannot run program "node" (in directory "/home/lvalach/rpm-workspace/StaticWebProject"): error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at tern.server.nodejs.process.internal.NodejsProcess.start(NodejsProcess.java:232)
... 6 more
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 7 more
The solution could be the move of the node.js runtime directory to /.metadata/.plugins/... which is (at least is supposed to be) fully accessible by a user.
At the moment, we'd like to create a new branch tern.java-1.1.x-branch, based on tern.java-1.1.0 tag, fix the issue in that branch and then produce tern.java-1.1.1 release with the only this issue fixed for Tern.java from that branch as we did it already for 0.7.x and 0.8.x releases.
Off course, the issue also is to be fixed in master branch.
@angelozerr, could you please make a branch based on tag tern.java-1.1.0 named as tern.java-1.1.x-branch (as we did it before for 0.7.x and 0.8.x), so I could make a PR with a fix for the issue into that branch?