eclipse-jdtls / eclipse.jdt.ls

Java language server
1.79k stars 399 forks source link

Failed to load eclipse project #928

Open Yanpas opened 5 years ago

Yanpas commented 5 years ago

I have a big project with custom build system that generates eclipse classpath file. This project also contains small maven and gradle projects which I'm not interested in (i. e. not interested in autocompletion).

I have created .project file in eclipse:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>trunk_co</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
</projectDescription>

When I open vscode I see following error:

[Error - 13:16:45] 8 февр. 2019 г., 13:16:45 Initialization failed 
org.eclipse.core.internal.resources.ResourceException: Invalid project description.
java.lang.RuntimeException: org.eclipse.core.internal.resources.ResourceException: Invalid project description.
    at org.eclipse.jdt.ls.core.internal.managers.EclipseProjectImporter.importDir(EclipseProjectImporter.java:96)
    at org.eclipse.jdt.ls.core.internal.managers.EclipseProjectImporter.lambda$0(EclipseProjectImporter.java:63)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
    at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1083)
    at org.eclipse.jdt.ls.core.internal.managers.EclipseProjectImporter.importToWorkspace(EclipseProjectImporter.java:63)
    at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.importProjects(ProjectsManager.java:136)
    at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.access$1(ProjectsManager.java:130)
    at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager$2.run(ProjectsManager.java:124)
    at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:41)
    at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:736)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2295)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2322)
    at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:5810)
    at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:5767)
    at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.initializeProjects(ProjectsManager.java:116)
    at org.eclipse.jdt.ls.core.internal.handlers.InitHandler$1.runInWorkspace(InitHandler.java:242)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:42)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.eclipse.core.internal.resources.ResourceException: Invalid project description.
    at org.eclipse.core.internal.resources.Project.checkDescription(Project.java:173)
    at org.eclipse.core.internal.resources.Project.assertCreateRequirements(Project.java:57)
    at org.eclipse.core.internal.resources.Project.create(Project.java:267)
    at org.eclipse.core.internal.resources.Project.create(Project.java:251)
    at org.eclipse.jdt.ls.core.internal.managers.EclipseProjectImporter.importDir(EclipseProjectImporter.java:92)
    ... 17 more

Eclipse deals fine with this project. I have disabled maven and gradle import:

"java.import.gradle.enabled": false,
"java.import.maven.enabled": false,

.classpath:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
        <classpathentry kind="output" path="EclipseBuild"/>
        <classpathentry kind="lib" path="tmp/release/contrib/hadoop-2.0.0-cdh4.4.0m4/hadoop-ant-2.0.0-mr1-cdh4.4.0.jar"/>
......
Yanpas commented 5 years ago

In october vscode worked fine with the same setup

Yanpas commented 5 years ago

The problem that in some folder with build.gradle file .project file was generatin ("created with Buildship") and it stopped language server from running. Now I've chmod 000 and it helps.

Yanpas commented 5 years ago

@snjeza is it fixed in master?

snjeza commented 5 years ago

@Yanpas if you set the following properties:

"java.import.gradle.enabled": false,
"java.import.maven.enabled": false,

Java LS won't create the gradle and maven projects.

Yanpas commented 5 years ago

If you read my first comment comment you will notice that I've already disabled these options.

snjeza commented 5 years ago

@Yanpas could you attach your project?

Yanpas commented 5 years ago

Here is a problematic file located in (ROOT/gradleprojects/.project):

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
        <name>projects</name>
        <comment>Project projects created by Buildship.</comment>
        <projects>
        </projects>
        <buildSpec>
                <buildCommand>
                        <name>org.eclipse.buildship.core.gradleprojectbuilder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
        </buildSpec>
        <natures>
                <nature>org.eclipse.buildship.core.gradleprojectnature</nature>
        </natures>
</projectDescription>

Don't know why is it generated with disabled gradle import.

Moreover I think failing to import one .project should not affect other .project files

snjeza commented 5 years ago

Don't know why is it generated with disabled gradle import.

I can't reproduce it.

I suppose, you have started VS Code without the mentioned properties. You have try the following: