Synchronize Gradle projects with workspace failed due to an error connecting to the Gradle build

Hello,
I’m using Spring Tool Suite v3.8.3.201612191351-RELEASE-e46 and its IDE components v3.8.4.201703270648-CI-B1595.
I’ve also Gradle Buildship v2.0.1.v20170302-1039.

I’m trying to create a new Spring Starter Project but at the end of the procedure I’ve this error:

"Synchronize Gradle projects with workspace failed due to an error connecting to the Gradle build.
Could not run build action using Gradle distribution ‘https://services.gradle.org/distributions/gradle-3.3-bin.zip’.

Could not determine the class-path for class org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.
java.net.URISyntaxException: Illegal character in path at index 15: file:/C:/Spring Tool Suite 3.8.3/sts-bundle/sts-3.8.2.RELEASE/plugins/org.gradle.toolingapi_3.4.0.v20170220163122.jar
Illegal character in path at index 15: file:/C:/Spring Tool Suite 3.8.3/sts-bundle/sts-3.8.2.RELEASE/plugins/org.gradle.toolingapi_3.4.0.v20170220163122.jar"


org.gradle.tooling.GradleConnectionException: Could not run build action using Gradle distribution 'https://services.gradle.org/distributions/gradle-3.3-bin.zip'.
	at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:55)
	at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:29)
	at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:41)
	at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:57)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
	at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46)
	at org.gradle.tooling.internal.consumer.DefaultBuildActionExecuter.run(DefaultBuildActionExecuter.java:48)
	at com.gradleware.tooling.toolingclient.internal.DefaultToolingClient.executeAndWait(DefaultToolingClient.java:106)
	at com.gradleware.tooling.toolingclient.internal.DefaultBuildActionRequest.executeAndWait(DefaultBuildActionRequest.java:51)
	at com.gradleware.tooling.toolingmodel.repository.internal.DefaultModelRepository$13.get(DefaultModelRepository.java:287)
	at com.gradleware.tooling.toolingmodel.repository.internal.DefaultModelRepository.executeAndWait(DefaultModelRepository.java:355)
	at com.gradleware.tooling.toolingmodel.repository.internal.DefaultModelRepository.access$100(DefaultModelRepository.java:49)
	at com.gradleware.tooling.toolingmodel.repository.internal.DefaultModelRepository$14.call(DefaultModelRepository.java:313)
	at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4724)
	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3522)
	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2315)
	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2278)
	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2193)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3932)
	at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4721)
	at com.gradleware.tooling.toolingmodel.repository.internal.DefaultModelRepository.getFromCache(DefaultModelRepository.java:330)
	at com.gradleware.tooling.toolingmodel.repository.internal.DefaultModelRepository.executeRequest(DefaultModelRepository.java:309)
	at com.gradleware.tooling.toolingmodel.repository.internal.DefaultModelRepository.executeRequest(DefaultModelRepository.java:280)
	at com.gradleware.tooling.toolingmodel.repository.internal.DefaultModelRepository.fetchEclipseGradleProjects(DefaultModelRepository.java:238)
	at org.eclipse.buildship.core.workspace.internal.DefaultModelProvider.fetchEclipseGradleProjects(DefaultModelProvider.java:66)
	at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.fetchEclipseProjects(SynchronizeGradleBuildsJob.java:87)
	at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.synchronizeBuild(SynchronizeGradleBuildsJob.java:79)
	at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.runToolingApiJob(SynchronizeGradleBuildsJob.java:72)
	at org.eclipse.buildship.core.util.progress.ToolingApiJob$1.run(ToolingApiJob.java:73)
	at org.eclipse.buildship.core.util.progress.ToolingApiInvoker.invoke(ToolingApiInvoker.java:62)
	at org.eclipse.buildship.core.util.progress.ToolingApiJob.run(ToolingApiJob.java:70)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: org.gradle.api.GradleException: Could not determine the class-path for class org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.
	at org.gradle.tooling.internal.provider.serialization.ClasspathInferer.find(ClasspathInferer.java:143)
	at org.gradle.tooling.internal.provider.serialization.ClasspathInferer.getClassPathFor(ClasspathInferer.java:61)
	at org.gradle.tooling.internal.provider.serialization.ClientSidePayloadClassLoaderRegistry$1.visitClass(ClientSidePayloadClassLoaderRegistry.java:78)
	at org.gradle.tooling.internal.provider.serialization.WellKnownClassLoaderRegistry$1.visitClass(WellKnownClassLoaderRegistry.java:65)
	at org.gradle.tooling.internal.provider.serialization.PayloadSerializerObjectOutputStream.writeClassLoader(PayloadSerializerObjectOutputStream.java:63)
	at org.gradle.tooling.internal.provider.serialization.PayloadSerializerObjectOutputStream.writeClass(PayloadSerializerObjectOutputStream.java:55)
	at org.gradle.tooling.internal.provider.serialization.PayloadSerializerObjectOutputStream.writeClassDescriptor(PayloadSerializerObjectOutputStream.java:43)
	at java.io.ObjectOutputStream.writeNonProxyDesc(Unknown Source)
	at java.io.ObjectOutputStream.writeClassDesc(Unknown Source)
	at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
	at java.io.ObjectOutputStream.writeObject0(Unknown Source)
	at java.io.ObjectOutputStream.writeObject(Unknown Source)
	at org.gradle.tooling.internal.provider.serialization.PayloadSerializer.serialize(PayloadSerializer.java:45)
	at org.gradle.tooling.internal.provider.ProviderConnection.run(ProviderConnection.java:121)
	at org.gradle.tooling.internal.provider.DefaultConnection.run(DefaultConnection.java:208)
	at org.gradle.tooling.internal.consumer.connection.CancellableConsumerConnection$CancellableActionRunner.run(CancellableConsumerConnection.java:99)
	at org.gradle.tooling.internal.consumer.connection.AbstractConsumerConnection.run(AbstractConsumerConnection.java:62)
	at org.gradle.tooling.internal.consumer.DefaultBuildActionExecuter$1.run(DefaultBuildActionExecuter.java:59)
	at org.gradle.tooling.internal.consumer.connection.LazyConsumerActionExecutor.run(LazyConsumerActionExecutor.java:79)
	at org.gradle.tooling.internal.consumer.connection.CancellableConsumerActionExecutor.run(CancellableConsumerActionExecutor.java:45)
	at org.gradle.tooling.internal.consumer.connection.ProgressLoggingConsumerActionExecutor.run(ProgressLoggingConsumerActionExecutor.java:58)
	at org.gradle.tooling.internal.consumer.connection.RethrowingErrorsConsumerActionExecutor.run(RethrowingErrorsConsumerActionExecutor.java:38)
	at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:55)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.gradle.internal.UncheckedException: java.net.URISyntaxException: Illegal character in path at index 15: file:/C:/Spring Tool Suite 3.8.3/sts-bundle/sts-3.8.2.RELEASE/plugins/org.gradle.toolingapi_3.4.0.v20170220163122.jar
	at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:45)
	at org.gradle.internal.classloader.ClasspathUtil.getClasspathForClass(ClasspathUtil.java:88)
	at org.gradle.tooling.internal.provider.serialization.ClasspathInferer.find(ClasspathInferer.java:92)
	... 27 more
Caused by: java.net.URISyntaxException: Illegal character in path at index 15: file:/C:/Spring Tool Suite 3.8.3/sts-bundle/sts-3.8.2.RELEASE/plugins/org.gradle.toolingapi_3.4.0.v20170220163122.jar
	at java.net.URI$Parser.fail(Unknown Source)
	at java.net.URI$Parser.checkChars(Unknown Source)
	at java.net.URI$Parser.parseHierarchical(Unknown Source)
	at java.net.URI$Parser.parse(Unknown Source)
	at java.net.URI.<init>(Unknown Source)
	at java.net.URL.toURI(Unknown Source)
	at org.gradle.internal.classloader.ClasspathUtil.getClasspathForClass(ClasspathUtil.java:74)
	... 28 more

Any help?

Thanks a lot
Regards,
Andrea

Hi,

This is an issue in the Gradle Tooling API that has been resolved in the 3.4 release. You can either upgrade your project to Gradle 3.4 or move your Eclipse installation and workspace to a location that doesn’t contain whitespaces.

1 Like

Hi donat,
thanks for your reply.

Yes, my Spring Tool Suite installation contains whitespaces, maybe this is the problem and I will try move it.

I’ve now another problem: I’ve just done a new clean installation of Eclipse (not STS) Version: Neon.3 Release (4.6.3) Build id: 20170314-1500; I’ve installed from marketplace Buildship: Eclipse Plug-ins for Gradle 2.0.1.v20170302-1039 and from marketplace Spring Plugin for Eclipse v3.8.3.201612191259-RELEASE.

When I try to create a new Spring Project and I select the type Gradle (Buildship) or Gradle (STS) it says to me:

“Can not import using Gradle (Buildship) because Buildship Gradle Tooling is not installed. You can install it from Eclipse Marketplace.”

But…it is installed. Where is the problem, in Gradle or in Spring Plugin (maybe there is need of Spring 3.8.4 not released yet)?

Thanks,
Andrea

Most probably this is a problem with STS not properly detecting the presence of Buildship. You might want to ask about it on the STS forums.

Solution worked for me. My Eclipse executable had a whitespace in it like “eclipse 2”.
After removing the whitespace it is working like charm.

2 Likes

Thank you, this solution worked for me too! I had “Eclipse 2.app” on Mac, and the message didn’t show up anymore after removing the space by renaming it into “Eclipse.app”