Could not load nodeJSInstall: node-v0.10.22-linux-x86_64 · Issue #441 · angelozerr/tern.java · GitHub
Skip to content

Could not load nodeJSInstall: node-v0.10.22-linux-x86_64 #441

Description

@vrubezhny

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions