vscode-java icon indicating copy to clipboard operation
vscode-java copied to clipboard

"Could not set the project description for '<xyz>' because the project description file (.project) is out of sync with the file system" since v0.66.0

Open Strum355 opened this issue 5 years ago • 11 comments

Ever since the latest update (0.66.0), I've consistently been getting the title error message in exceptions in the extension output panel (Could not set the project description for '<xyz>' because the project description file (.project) is out of sync with the file system.) and is very difficult to solve consistently.

Environment
  • Operating System: Arch Linux
  • JDK version: 14
  • Visual Studio Code version: 1.48.2
  • Java extension version: 0.66.0
Steps To Reproduce

Often happens when invoking the command "clean language server workspace", sometimes just when restarting VSCode

Cant repro easily and consistently

Issue isn't isolated to any one repo

Logs
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on
WARNING: Using incubator modules: jdk.incubator.foreign, jdk.incubator.jpackage
[Error - 1:12:44 PM] Sep 3, 2020, 1:12:44 PM Failed to configure project spoon-core
Could not set the project description for 'spoon-core' because the project description file (.project) is out of sync with the file system.
org.eclipse.core.internal.resources.ResourceException(/spoon-core)[274]: java.lang.Exception: Could not set the project description for 'spoon-core' because the project description file (.project) is out of sync with the file system.
	at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42)
	at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38)
	at org.eclipse.core.internal.resources.Project.setDescription(Project.java:1264)
	at org.eclipse.core.internal.resources.Project.setDescription(Project.java:1298)
	at org.eclipse.buildship.core.internal.workspace.ProjectNatureUpdater.update(ProjectNatureUpdater.java:49)
	at org.eclipse.buildship.core.internal.workspace.BaseConfigurator.configure(BaseConfigurator.java:86)
	at org.eclipse.buildship.core.internal.workspace.BaseConfigurator.configure(BaseConfigurator.java:66)
	at org.eclipse.buildship.core.internal.extension.InternalProjectConfigurator.configure(InternalProjectConfigurator.java:65)
	at org.eclipse.buildship.core.internal.workspace.ProjectConfigurators.configureConfigurators(ProjectConfigurators.java:70)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation.synchronizeOpenWorkspaceProject(SynchronizeGradleBuildOperation.java:163)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation.synchronizeWorkspaceProject(SynchronizeGradleBuildOperation.java:137)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation.synchronizeGradleProjectWithWorkspaceProject(SynchronizeGradleBuildOperation.java:127)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation.access$000(SynchronizeGradleBuildOperation.java:42)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation$1.run(SynchronizeGradleBuildOperation.java:85)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2292)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2312)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation.synchronizeProjectsWithWorkspace(SynchronizeGradleBuildOperation.java:82)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation.run(SynchronizeGradleBuildOperation.java:64)
	at org.eclipse.buildship.core.internal.DefaultGradleBuild$SynchronizeOperation.runInToolingApi(DefaultGradleBuild.java:230)
	at org.eclipse.buildship.core.internal.operation.DefaultToolingApiOperationManager$WorkspaceRunnableAdapter.run(DefaultToolingApiOperationManager.java:58)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2292)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2317)
	at org.eclipse.buildship.core.internal.operation.DefaultToolingApiOperationManager.run(DefaultToolingApiOperationManager.java:39)
	at org.eclipse.buildship.core.internal.DefaultGradleBuild$SynchronizeOperation.run(DefaultGradleBuild.java:192)
	at org.eclipse.buildship.core.internal.DefaultGradleBuild.synchronize(DefaultGradleBuild.java:100)
	at org.eclipse.buildship.core.internal.DefaultGradleBuild.synchronize(DefaultGradleBuild.java:86)
	at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.startSynchronization(GradleProjectImporter.java:238)
	at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.importDir(GradleProjectImporter.java:127)
	at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.lambda$0(GradleProjectImporter.java:119)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1087)
	at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.importToWorkspace(GradleProjectImporter.java:119)
	at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.importProjects(ProjectsManager.java:114)
	at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.initializeProjects(ProjectsManager.java:104)
	at org.eclipse.jdt.ls.core.internal.handlers.InitHandler$1.runInWorkspace(InitHandler.java:195)
	at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:42)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

[Error - 1:12:44 PM] Sep 3, 2020, 1:12:44 PM Failed to configure project spoon-core
Could not set the project description for 'spoon-core' because the project description file (.project) is out of sync with the file system.
org.eclipse.core.internal.resources.ResourceException(/spoon-core)[274]: java.lang.Exception: Could not set the project description for 'spoon-core' because the project description file (.project) is out of sync with the file system.
	at org.eclipse.core.internal.resources.ResourceException.provideStackTrace(ResourceException.java:42)
	at org.eclipse.core.internal.resources.ResourceException.<init>(ResourceException.java:38)
	at org.eclipse.core.internal.resources.Project.setDescription(Project.java:1264)
	at org.eclipse.core.internal.resources.Project.setDescription(Project.java:1298)
	at org.eclipse.buildship.core.internal.workspace.ProjectNatureUpdater.update(ProjectNatureUpdater.java:49)
	at org.eclipse.buildship.core.internal.workspace.BaseConfigurator.configure(BaseConfigurator.java:86)
	at org.eclipse.buildship.core.internal.workspace.BaseConfigurator.configure(BaseConfigurator.java:66)
	at org.eclipse.buildship.core.internal.extension.InternalProjectConfigurator.configure(InternalProjectConfigurator.java:65)
	at org.eclipse.buildship.core.internal.workspace.ProjectConfigurators.configureConfigurators(ProjectConfigurators.java:70)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation.synchronizeOpenWorkspaceProject(SynchronizeGradleBuildOperation.java:163)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation.synchronizeWorkspaceProject(SynchronizeGradleBuildOperation.java:137)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation.synchronizeGradleProjectWithWorkspaceProject(SynchronizeGradleBuildOperation.java:127)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation.access$000(SynchronizeGradleBuildOperation.java:42)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation$1.run(SynchronizeGradleBuildOperation.java:85)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2292)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2312)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation.synchronizeProjectsWithWorkspace(SynchronizeGradleBuildOperation.java:82)
	at org.eclipse.buildship.core.internal.workspace.SynchronizeGradleBuildOperation.run(SynchronizeGradleBuildOperation.java:64)
	at org.eclipse.buildship.core.internal.DefaultGradleBuild$SynchronizeOperation.runInToolingApi(DefaultGradleBuild.java:230)
	at org.eclipse.buildship.core.internal.operation.DefaultToolingApiOperationManager$WorkspaceRunnableAdapter.run(DefaultToolingApiOperationManager.java:58)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2292)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2317)
	at org.eclipse.buildship.core.internal.operation.DefaultToolingApiOperationManager.run(DefaultToolingApiOperationManager.java:39)
	at org.eclipse.buildship.core.internal.DefaultGradleBuild$SynchronizeOperation.run(DefaultGradleBuild.java:192)
	at org.eclipse.buildship.core.internal.DefaultGradleBuild.synchronize(DefaultGradleBuild.java:100)
	at org.eclipse.buildship.core.internal.DefaultGradleBuild.synchronize(DefaultGradleBuild.java:86)
	at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.startSynchronization(GradleProjectImporter.java:238)
	at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.importDir(GradleProjectImporter.java:127)
	at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.lambda$0(GradleProjectImporter.java:119)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1087)
	at org.eclipse.jdt.ls.core.internal.managers.GradleProjectImporter.importToWorkspace(GradleProjectImporter.java:119)
	at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.importProjects(ProjectsManager.java:114)
	at org.eclipse.jdt.ls.core.internal.managers.ProjectsManager.initializeProjects(ProjectsManager.java:104)
	at org.eclipse.jdt.ls.core.internal.handlers.InitHandler$1.runInWorkspace(InitHandler.java:195)
	at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:42)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Current Result

Language server gives up, no autocomplete, linting etc. Deleting .project files and restarting does not consistently solve the issue, nor does invoking the command to clean the lang server workspace.

Expected Result

Opposite of above

Additional Informations

Issue never occurred in previous version

Strum355 avatar Sep 03 '20 12:09 Strum355

This is annoying and happens quite often.

Environment -Operating System: Windows 10 -JDK version: 11 -Visual Studio Code version: 1.49.3 -Java extension version: 0.68.0

If I delete the .gradle root folder and reopen vscode again it works till I clean the language server or restart vscode.

@snjeza do you have any idea, why this is happening?

Slay3r avatar Oct 05 '20 05:10 Slay3r

@Slay3r @Strum355 could you try to reproduce the issue with https://github.com/snjeza/vscode-test/raw/master/java-0.69.0.vsix?

snjeza avatar Oct 08 '20 18:10 snjeza

Hi @snjeza , okay here my steps with Java Language Server logs:

  1. installed 0.69.0.vsix
  2. started project in vscode and got the same error (1.log)
  3. Closed vscode and deleted all .project files
  4. Reopen vscode and it starts without the error (2.log)
  5. Cleaned Java Language Server 2-3 Times than the same error pops up (3.log)

Without cleaning the language server can reopen vscode several times without any problem. Maybe its an issue regarding the "Clean Java Language Server"

Maybe @Strum355 can also reproduce this issue.

Slay3r avatar Oct 09 '20 05:10 Slay3r

@Slay3r could you provide the following:

  • your settings.json
  • your VS Code extension's list
  • a project example

Could you reproduce the issue if disable all extensions except Java LS?

snjeza avatar Oct 09 '20 14:10 snjeza

@snjeza

I think I found the problem by stripping down and preparing a project for you. I don't know if this is allowed or not.

I disabled all extension except for the "Language Support for Java(TM)" extension

The Problem: I declared in the settings.gradle file my Root Project Name with:

rootProject.name = 'demo'

But the Project is in a Folder called "demoproject".

If I have this configuration the problem is occurring when cleaning the language server several times.

If I change the Root Project Name to:

rootProject.name = 'demoproject' Everything is working.

So the question is now, is it allowed to declare a different root project name in gradle than the folder name?

Demo Project (check the settings.gradle): demoproject.zip

Thanks for your time.

Slay3r avatar Oct 09 '20 19:10 Slay3r

This is a buildship upstream issue. It can be reproduced in Eclipse. Related issue - https://github.com/eclipse/buildship/issues/478 cc @donat @Slay3r Thanks

snjeza avatar Oct 09 '20 20:10 snjeza

@snjeza, @donat is a fixed version already planned or when can a new version be expected?

Slay3r avatar Oct 13 '20 12:10 Slay3r

@fbricon we can remove the .project files or remove the filteredResources property from them when importing a new gradle project. What do you think?

@Slay3r you can try to add:

"java.project.resourceFilters": [],

to your settings.json.

snjeza avatar Oct 13 '20 14:10 snjeza

I'm having the same issue but during debugging. That's handled by another extension, right?

levrik avatar Aug 31 '21 13:08 levrik

@rgrunber @fbricon Could you, please, comment on https://github.com/redhat-developer/vscode-java/issues/1607#issuecomment-707773723

snjeza avatar Jan 21 '22 20:01 snjeza

I have same issue, and

"java.project.resourceFilters": [],

is effective for my project. Thanks.

noguchi-taketo avatar Aug 27 '24 07:08 noguchi-taketo